看板 Office 關於我們 聯絡資訊
軟體: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