返回列表 上一主題 發帖

[發問] 刪除指定資料夾中所有巨集

[發問] 刪除指定資料夾中所有巨集

請教高手:
VBA TEST 6_刪除所有巨集.zip (281.2 KB)

我要在Cancel VBA.xlsm的E6儲存格中指定一個資料夾名稱為"刪除所有巨集",
1) 只要是放在這個資料夾中的所有檔案,一律刪除所有巨集(不論EXCEL檔案中有多少巨集)
2) 資料夾中的EXCEL檔案類型有.xls/.xlsm

這樣的要求是否可寫成一個巨集?

VBA TEST 6_刪除資料夾中巨集.zip (93.08 KB)

回復 2# Hsieh
版大,
在程式執行過程中,它會一直出現對話框問是否更新連結?我想到之前大大給的二句話(藍色字),就將它加在這個程式中,但執行時停在With Workbooks.Open(fd & fs),是否前述二句話放錯位置了?
Application.DisplayAlerts = False
Application.AskToUpdateLinks = False
  1. Sub Try()
  2. fd = ThisWorkbook.Path & "\" & Sheets(1).[E6] & "\"
  3. fs = Dir(fd & "*.xlsm")
  4. fs = Dir(fd & "*.xls")
  5. Do Until fs = ""
  6. Application.DisplayAlerts = False
  7. Application.AskToUpdateLinks = False
  8. With Workbooks.Open(fd & fs)
  9. For Each vbc In .VBProject.VBComponents
  10.   Select Case vbc.Type
  11.   Case vbext_rk_Project, vbext_wt_Browser, vbext_ct_MSForm '註
  12.     .VBProject.VBComponents.Remove .Item(vbc.Name)

  13.   Case Else
  14.     .VBProject.VBComponents(vbc.Name).CodeModule.DeleteLines 1, _
  15.     .VBProject.VBComponents(vbc.Name).CodeModule.CountOfLines

  16.   End Select
  17. Next
  18. .Close 1
  19. End With
  20. fs = Dir
  21. Loop
  22. End Sub
複製代碼

TOP

回復 6# Hsieh
請問大大,
若是待刪除巨集的檔案中有些是完全沒有巨集的(程式會停下來),我要讓"刪除巨集"的程式忽略它,繼續執行指令刪除其它有巨集的檔案,
我應該加入什麼語言(加在什麼地方)?才能達成我想要的?

TOP

回復 6# Hsieh

再補充問題,程式執行時是否會因為簡體字而無法執行,像以下的檔名,它就出現了這樣的訊息:
6月11日出车表.xls

TOP

回復 9# Hsieh
也許我誤以為簡體字檔名為無巨集便會停下來,現在測試未發現有問題了,不過想請教,為何將檔名顯示在[A1]儲存格,為何它就可以接受簡體字了?

TOP

回復 9# Hsieh

版大,
最近我的電腦重新安裝Ms office 2010,之前使用的這個巨集,突然無法運作並出現"錯誤1004",可以幫忙看下是出了什麼問題?或者我需要再提供什麼訊息? 感謝!!

Cancel VBA.zip (18.84 KB)

TOP

回復 12# GBKEE

感謝大大, 原來是設定問題,解決了!!

TOP

        靜思自在 : 有心就有福,有願就有力,自造福田,自得福緣。
返回列表 上一主題