作者chiahaug (PTT實業坊)
看板Office
標題[算表] autofilter的criteria1條件設定
時間Sun Apr 3 12:07:48 2016
軟體: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
→ soyoso: criteria1:="<>" & sheetname 04/03 12:10
→ soyoso: 1.篩選="abc"的資料 2.range.delete 04/03 12:19
→ soyoso: 3.worksheet.showalldata 04/03 12:20
→ soyoso: 第2項range篩圍避開標題列 04/03 12:21
→ soyoso: 1.進階篩選,以複製到其他地方 2.刪除工作表或原資料 04/03 12:27
→ chiahaug: SO大的第五樓推文是指問題二的第二種方式嗎? 04/03 14:03
→ chiahaug: 還是承接三樓之後的動作?? 04/03 14:03
→ soyoso: 是指問題2的第2種方式 04/03 14:33
→ chiahaug: SO大非常非常感謝你!!!! 04/03 16:14