返回列表 上一主題 發帖

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

看到這問題想起多年前ZZ版兄在OFFICE精英
也問過同樣問題.那時後StartUp剛出現沒多久

不過剛要進OFFICE精英...仍進不去...OFFICE精英有好幾天進不去了
上次OFFICE精英進不去是2004年的時候了.結果是主機壞掉.所有文章退回1個月前
不恥下問,不斷學習,才會進步

TOP

本帖最後由 GBKEE 於 2012-6-9 12:11 編輯

回復 1# PJChen
另存為 2007無巨集格式的活頁簿 "xlsx"
  1. Sub Ex()
  2.     Dim xlPath As String, xlFile As String      'String: 資料型態
  3.     Application.DisplayAlerts = False           '停止系統的提示
  4.     xlPath = ThisWorkbook.Path & "\"            'ThisWorkbook.Path: 程式碼活頁簿所存檔的路徑;  你可修改為指定的路徑
  5.     xlFile = Dir(xlPath & "*.xlsm")             '指定的路徑中 尋找副檔名"xlsm"的檔案
  6.     Do While xlFile <> ""                        '處裡 找到"xlsm"的檔案
  7.         With Workbooks.Open(xlPath & xlFile)    '開啟這檔案
  8.             .SaveAs Filename:=Mid(xlPath & xlFile, 1, Len(xlPath & xlFile) - 1) & "x", FileFormat:=51
  9.                                                 '這檔案另存為 2007無巨集格式的活頁簿 "xlsx"
  10.             .Close                              '關閉檔案
  11.         End With
  12.         xlFile = Dir                            '指定的路徑中繼續尋找副檔名"xlsm"的檔案
  13.     Loop
  14.     If Dir(xlPath & "*.xlsm") <> "" Then Kill xlPath & "*.xlsm"
  15.                                                 '刪除指定的路徑中所有副檔名"xlsm"的檔案
  16.     Application.DisplayAlerts = True            '恢復系統的提示
  17. End Sub
複製代碼

TOP

回復 1# PJChen
參考用程式寫程式 (VBProject / VBComponents)
  1. Sub Try()
  2. fd = ThisWorkbook.Path & "\" & Sheets(1).[E6] & "\"
  3. fs = Dir(fd & "*.xlsm")
  4. Do Until fs = ""
  5. With Workbooks.Open(fd & fs)
  6. For Each vbc In .VBProject.VBComponents
  7.   Select Case vbc.Type
  8.   Case vbext_rk_Project, vbext_wt_Browser, vbext_ct_MSForm '註
  9.     .VBProject.VBComponents.Remove .Item(vbc.Name)

  10.   Case Else
  11.     .VBProject.VBComponents(vbc.Name).CodeModule.DeleteLines 1, _
  12.     .VBProject.VBComponents(vbc.Name).CodeModule.CountOfLines

  13.   End Select
  14. Next
  15. .Close 1
  16. End With
  17. fs = Dir
  18. Loop
  19. End Sub
複製代碼
學海無涯_不恥下問

TOP

        靜思自在 : 改變自己是自救,影響別人是救人。
返回列表 上一主題