debuggingExcel VBA ActiveWorkbook.SaveAs
我不知道为什么我的VBA代码片断不工作 – 我希望有人可以帮助。
我只是试图执行一个ActiveWorkbook.SaveAs作为一个更大的模块的一部分,但它是错误的。
以下是发生错误的代码片段:
LdrLastName = Right(wbCleaner.Sheets("Import Information").Range("$A$2"), Len(wbCleaner.Sheets("Import Information").Range("$A$2")) - Len(Left(wbCleaner.Sheets("Import Information").Range("$A$2"), LstNameSpacePos))) ExptdQBInitialFileName = LdrLastName & " " & wbCleaner.Sheets("Import Information").Range("$D$2") 'produces "LastName AccountCode" 'ExptdQBFileName MsgBox's the full file path and file name (ie C:/Folder/Filename.xlsx) ExptdQBFileName = Application.GetSaveAsFilename(InitialFileName:=ExptdQBInitialFileName, FileFilter:="QB Export File *.xlsx (*.xlsx),") If ExptdQBFileName <> "" And ExptdQBFileName <> "False" Then ActiveWorkbook.SaveAs Filename:=ExptdQBFileName, _ FileFormat:=xlOpenXMLWorkbook, _ Password:="", _ WriteResPassword:="", _ ReadOnlyRecommended:=False, _ CreateBackup:=False End If
该错误突出显示了If / End If语句中的所有内容。 我之前使用这个代码没有问题。 我在哪里错了?
只是为了分享,这本书和activeworkbook不同http://datapigtechnologies.com/blog/index.php/thisworkbook-vs-activeworkbook/
文件格式52是xlOpenXMLWorkbookMacroEnabled
或xlsm
文件。 如果您保存为.xlsx文件,我认为您要的文件格式是xlOpenXMLWorkbook
,它转换为51。
使用枚举而不是整数是有帮助的:
LdrLastName = Right(wbCleaner.Sheets("Import Information").Range("$A$2"), Len(wbCleaner.Sheets("Import Information").Range("$A$2")) - Len(Left(wbCleaner.Sheets("Import Information").Range("$A$2"), LstNameSpacePos))) ExptdQBInitialFileName = LdrLastName & " " & wbCleaner.Sheets("Import Information").Range("$D$2") 'produces "LastName AccountCode" ExptdQBFileName = Application.GetSaveAsFilename(InitialFileName:=ExptdQBInitialFileName, FileFilter:="QB Export File (*.xlsx), *.xlsx,") If ExptdQBFileName <> "" And ExptdQBFileName <> "False" Then ActiveWorkbook.SaveAs Filename:=ExptdQBFileName, _ FileFormat:=xlOpenXMLWorkbook, _ Password:="", _ WriteResPassword:="", _ ReadOnlyRecommended:=False, _ CreateBackup:=False End If
我不知道为什么,但解决scheme是改变
ActiveWorkbook.("QB Export File").SaveAs
至
ThisWorkbook.Sheets("QB Export File").SaveAs
感谢user2851376分享下面的链接比较ThisWorkbook与ActiveWorkbook http://datapigtechnologies.com/blog/index.php/thisworkbook-vs-activeworkbook/