[算表] autofilter的criteria1條件設定

看板Office作者 (PTT實業坊)時間10年前 (2016/04/03 12:07), 編輯推噓0(009)
留言9則, 2人參與, 最新討論串1/1
軟體:office EXCEL 版本:2010 VBA程式碼如下 dim sheetname as string sheetname = "ABC" activesheet.usedrange.autofilter field:=52, criteria1:="<>sheetname" activesheet的資料有R*C = 100*52 原本目的是針對第52欄進行篩選,篩選條件是把52欄的值為"ABC"的數據篩選掉 但是以上述程式碼執行後卻變成把52欄的值為"sheetname"的數據篩選掉 想當然根本啥都沒篩選到... sheetname其實是主程式傳值過來的(上面寫這樣只是為了解釋) 因此可能會根據使用者指定的值會不同 所以沒辦法直接一開始就指定是"ABC" 請問各位大大...這樣的情形該如何處置?? 另想請問的是 同樣是R*C = 100*52的數據 我想把52欄的值為"ABC"的數據刪掉 目前想到的方法是 1. 篩選出52欄非"ABC"的資料 2. 複製到新的sheet 3. 把原本的全部砍掉 4. 把新的sheet資料再copy回來 這樣就會是把52欄的值為"ABC"刪掉後的結果了 想請教的是,有人有比這個更快的方法嗎? 感謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.141.169.213 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1459656470.A.2D6.html

04/03 12:10, , 1F
criteria1:="<>" & sheetname
04/03 12:10, 1F

04/03 12:19, , 2F
1.篩選="abc"的資料 2.range.delete
04/03 12:19, 2F

04/03 12:20, , 3F
3.worksheet.showalldata
04/03 12:20, 3F

04/03 12:21, , 4F
第2項range篩圍避開標題列
04/03 12:21, 4F

04/03 12:27, , 5F
1.進階篩選,以複製到其他地方 2.刪除工作表或原資料
04/03 12:27, 5F

04/03 14:03, , 6F
SO大的第五樓推文是指問題二的第二種方式嗎?
04/03 14:03, 6F

04/03 14:03, , 7F
還是承接三樓之後的動作??
04/03 14:03, 7F

04/03 14:33, , 8F
是指問題2的第2種方式
04/03 14:33, 8F

04/03 16:14, , 9F
SO大非常非常感謝你!!!!
04/03 16:14, 9F
文章代碼(AID): #1N09SMBM (Office)
文章代碼(AID): #1N09SMBM (Office)