作者ptguitar (佩蒂吉他)
看板Office
標題[算表] 刪除多筆資料vba
時間Wed Apr 5 16:51:26 2017
軟體:excel
版本:2007以上
我有數個檔案
要刪除A跟B欄位符合某些條件的那一列
條件要隨時可以更改
後來寫了個巨集
範例檔案
https://drive.google.com/open?id=0BwCgrQhGgaw7V24xcG1reko1ZjQ
主要是這段vba
Do While openfile <> ""
For J = 1 To abc
Workbooks(thiswrkname).Activate
Sheets("刪除").Select
YY = Range("A" & 1 + J)
Workbooks.Open filepath & openfile
ActiveSheet.Select
For i = [a65536].End(xlUp).Row To 1 Step -1
MM = Application.Match(YY, Range("A" & i & ":B" & i), 0)
If IsError(MM) = False Then Rows(i).Delete
Next i
Next J
Workbooks(openfile).Save
Workbooks(openfile).Close
openfile = Dir
Loop
迴圈加上迴圈我都失敗
若只是單獨裡面那圈只刪一筆就會成功
不知道是那邊想錯了
感謝各位指點@@
還有若是這個狀況不知道有什麼更好的寫法
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.67.77
※ 文章網址: https://www.ptt.cc/bbs/Office/M.1491382289.A.D93.html
→ soyoso: 1.counter為J的迴圈取消;YY的變數放置counter為i的迴圈內 04/05 17:14
→ soyoso: 2.工作表函數match的第2引數,指定workbooks為該巨集活頁 04/05 17:15
→ soyoso: 簿名稱及副檔名,巨集內有以thiswrkname取得,後面接 04/05 17:17
→ soyoso: 的修改為range以單欄,變數使用上可不用配合變數i 04/05 17:21
→ soyoso: 抱歉因刪除A跟B欄符合條件的那一列,更正為下方回文 04/05 17:33
→ soyoso: 1.將巨集內workbooks.open filepath & openfile移至 04/05 17:33
→ soyoso: do while openfile <>""下方 04/05 17:34
→ soyoso: 於YY=range("a" & 1+j)的下方打上workbooks(openfile) 04/05 17:34
→ soyoso: .activate,其他部分無變動 04/05 17:35
→ ptguitar: 感謝S大的熱心指導 真的幫助我很多很多^^ 04/05 20:19