VBA另存为崩溃
我有一个名为Summary.xlsm
的xlsm
文件。 摘要文件从xlsx
文件收集它所在的同一文件夹中的数据。摘要文件所在的文件夹应只包含名为IEM_######.xlsx
(IEM_加上任意六位数字)的其他Excel文件,但有时其他Excel文件被错误地命名。
我试图创build一个macros来识别错误命名的文件,并相应地重命名它们。 macros命名和保存错误的工作簿,但它总是导致所谓的“死亡白屏”,Excel必须closures。 我一步一步地运行macros,SaveAS方法似乎是罪魁祸首。
这是违规的代码:
Sub Rename() With Application .ScreenUpdating = False End With Dim FilesInPath As String, MyPath As String, MyFiles() As String, File As String, Number As String Dim i As Long Dim Wbk As Workbook MyPath = Application.ThisWorkbook.Path + "\" FilesInPath = Dir(MyPath) FNum = 0 Do While FilesInPath <> "" FNum = FNum + 1 ReDim Preserve MyFiles(1 To FNum) MyFiles(FNum) = FilesInPath FilesInPath = Dir() Loop MsgBox (FNum & " files were found.") For i = 1 To FNum File = MyPath & MyFiles(i) On Error Resume Next Set Wbk = Workbooks.Open(File) Workbooks(MyFiles(i)).Activate If Not ((ActiveWorkbook.Name Like "IEM_######.xl*") Or (ActiveWorkbook.Name Like "Summary.xlsm")) Then Number = Worksheets("Time allocation").Range("B7") Name = "IEM_" & Number & ".xlsx" ActiveWorkbook.SaveAs MyPath & Name End If Call Wbk.Close(True) Next End Sub
任何想法可以做什么?
罪魁祸首可能实际上是Call Wbk.Close
因为它也closuresCall Wbk.Close
(其中包含macros),而“崩溃”实际上就是closures汇总Excel
^^这是问题 – macros现在好了!