保存为xls工作簿时删除所有的macros/ vba

我正在使用创build文件并复制我的工作簿(xlsm)并将其保存为xls工作簿到创build的文件的过程,并且工作正常。

我需要删除所有的macros和vba时, 保存为 exacuted,即我需要从保存的工作簿中删除macros/ vba不是原来的工作簿。

我知道我可以将它保存为一个xlsx工作簿来删除所有macros和vba,但我需要的工作簿是一个macros/ vba免费xls工作簿。

我已经Google了,但没有find任何我可以使用的东西,如果我明白了这一点,我会继续寻找并回复。

我在这里find了这个:

http://enholm.net/index.php/blog/vba-code-to-transfer-excel-2007-xlsx-books-to-2003-xls-format/

它通过寻找xlsx文件的一个重要search,并将其更改为xls文件

我认为,尽pipe可以更改为查找xlsm文件并将其更改为xls文件。

当我运行它时,我得到:

Run-Time error '9' Subscript out of range Debug Sheets("List").Cells(r, 1) = Coll_Docs(i) is highlighted in yellow 

我不知道什么是不工作的vba。 谢谢

 Sub SearchAndChange() Dim Coll_Docs As New Collection Dim Search_path, Search_Filter, Search_Fullname As String Dim DocName As String Application.DisplayAlerts = False Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Dim i As Long Search_path = ThisWorkbook.Path & "\360 Compiled Repository\May_2013" Search_Filter = "*.xlsx" Set Coll_Docs = Nothing DocName = dir(Search_path & "\" & Search_Filter) Do Until DocName = "" Coll_Docs.Add Item:=DocName DocName = dir Loop r = 1 For i = Coll_Docs.Count To 1 Step -1 Search_Fullname = Search_path & "\" & Coll_Docs(i) Sheets("List").Cells(r, 1) = Coll_Docs(i) Call changeFormats(Search_path, Coll_Docs(i)) r = r + 1 Next Application.DisplayAlerts = True Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub '************************************************************** '* Changes format from excel 2007 to 2003 '*************************************************************** Sub changeFormats(ByVal dir As String, ByVal fileName As String) Workbooks.Open fileName:=dir & fileName ActiveWorkbook.SaveAs fileName:=dir & Replace(fileName, "xlsx", "xls"), FileFormat:=xlExcel8 ActiveWindow.Close End Sub