看板 Office 關於我們 聯絡資訊
軟體: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
soyoso: 執行後https://i.imgur.com/ztNXJ87 04/05 17:37
ptguitar: 感謝S大的熱心指導 真的幫助我很多很多^^ 04/05 20:19