返回列表 上一主題 發帖

[發問] vba的篩選功能 (取消部分篩選)

本帖最後由 軒云熊 於 2020-10-8 12:31 編輯

回復 13# wei9133
這不是用篩選 而是用比對的方式  
你看一下是不是這樣?
  1. Public Sub 比對練習()
  2.     Application.ScreenUpdating = False
  3.     Dim A, B, i, k
  4.     k = 1
  5.     E = 345
  6.     For X = 1 To Cells(1, 1).End(xlDown).Row
  7.         A = Range(Cells(X, 49), Cells(X, 1))
  8.         B = Range(Cells(X, 99), Cells(X, 51))
  9.         
  10.         For i = 1 To UBound(B, 2)
  11.         If A(1, k) = "" Then A(1, k) = "-"
  12.         If B(1, i) = "" Then B(1, i) = "-"
  13.              f = f & A(1, k)
  14.              r = r & B(1, i)
  15.             If k <= UBound(A, 2) Then k = k + 1
  16.         Next i
  17.         
  18.         k = 1
  19.         
  20.         If f = r Then
  21.            Cells(E, 1).Resize(1, 104) = Cells(X, 1).Resize(1, 104).Value
  22.            E = E + 1
  23.         End If
  24.         
  25.         f = "": r = ""
  26.     Next X
  27.     Application.ScreenUpdating = True
  28. End Sub
複製代碼

TOP

回復 13# wei9133

樓主需求的篩選模式在同一sheet是無法執行的(ikboy已經說明了)
如果只是要計算各星象勝率/敗局建議可用比對的
只是無法看出這2各區塊(A~AW)內資料的相關性&勝率/敗局計算方式??

TOP

回復 12# 軒云熊
你好
在最初的需求中我沒有要刪任何資料
我是要比對是否有相同的資料(列)
才要固定[左|右]一邊的已篩選條件


應該怎麼說才能讓你理解呢0.0a

A~L 原本的資料格式要保留嗎?  還是只保留篩選後的?
M~Z 不做任何動作?


A~L已經篩選過了,都不要動它
M~Z每一個都把篩選選單拉開來點"全部"
Microsoft_Excel_-_對戰統計.xls-2020-10-08-00-41-45.png

我覺得我們溝通的問題應該出在這個"全部"上面...

感謝你花時間幫我想解決方案 m(_ _)m

TOP

本帖最後由 軒云熊 於 2020-10-7 20:12 編輯

回復 10# wei9133

A~L 原本的資料格式要保留嗎?  還是只保留篩選後的?
M~Z 不做任何動作?
這樣的話 A~L 的格式資料會改變 無法復原 因為是 先刪除   A~L 的資料 在貼上篩選後的資料  如果是在同一個活頁簿裡
或著 直接新增一個 新的 工作表在把結果貼上 ?
我看一下 影片好了 >"<

TOP

本帖最後由 wei9133 於 2020-10-7 20:00 編輯

回復 6# ikboy

不對,我直接講我要的結果
其實原本就是要把所有相同的行標示出來,然後加總起來
我沒有要拆開他的意思
每一行都是一個對戰紀錄(在附件CZ行有星象)
所以要比對的其實是,是否有A~CV都長得一樣的列(需要包含CZ),因為不同星象也會有A~CV想的一樣的狀態出現
不過因為還有CW~CY是不會相同的值,所以無法直接比對
現在我是手動把A~AW的挑選出來後,再去一個一個把AY~CU篩選出來,一樣的合併(連星象都一樣的部分),然後勝場+1
所以想要我在固定A~AW篩選條件的狀況下,去重置AY~CU的篩選條件


還是看不懂的麻煩移駕影片
https://sendvid.com/kvj69nqz
超連弄不出來,請自己複製網址到網址列吧
實際是就是要最後幾秒那個動作而已
只是不只點的那幾個,而是後方全部都點成全部

TOP

回復 9# 軒云熊
你好,我沒有測試你的巨集
不過看就知道不對,因為東西是在同一個活頁簿裡
只是分成前面跟後面而已
詳細可以看看上面的附件
應該這樣講
假設有A~Z欄 (實際上更多)
把A~L全部篩選好了
要把M~Z的篩選條件全部清空為預設
大概就只是這樣而已

TOP

本帖最後由 軒云熊 於 2020-10-7 14:15 編輯

回復 1# wei9133

並排顯示嗎?
  1. Sub 垂直並排顯示加篩選()
  2.     Application.ScreenUpdating = False
  3.     ActiveWindow.NewWindow '開啟多個相同工作簿
  4.     Windows.Arrange ArrangeStyle:=xlVertical '垂直並排顯示
  5.    
  6.     Windows("zz.xls:1").Activate '切換到工作表2
  7.     Sheets(2).Cells(51, 1).AutoFilter '篩選工作表2
  8.     Sheets(2).Select '點選工作表2

  9.     Windows("zz.xls:2").Activate '切換到工作表1
  10.     Sheets(1).Cells(1, 1).AutoFilter '篩選工作表1
  11.     Application.ScreenUpdating = True
  12. End Sub
複製代碼

TOP

回復  ikboy
請問你的意思是 篩選後的結果再篩選一次或著更多次嗎?
軒云熊 發表於 2020-10-7 12:28



    請看樓主在5#回覆, 由其是A~AW 與AY~CU那段,你會明白了。

TOP

回復 6# ikboy
請問你的意思是 篩選後的結果再篩選一次或著更多次嗎?

TOP

在同一頁及相同行將A-AW列, AY-CU列視為兩個不同板塊作篩選處理是不行的, 簡單的舉例: A2篩選後是顯示資料,AY2篩選後是不顯示資料, 那第2行到底要顯示或隱藏!!
折衷辦法分頁, 並排。附件我手動做的, 看看這思路行不。

zz.zip (74.09 KB)

TOP

        靜思自在 : 人生最大的成就是從失敗中站起來。
返回列表 上一主題