2016-02-11 85 views
1

我不确定为什么我的VBA代码片断没有工作 - 我希望有人可以提供帮助。调试Excel VBA ActiveWorkbook.SaveAs

我只是试图执行一个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 (i.e. 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 

错误凸显了如果/ END IF语句内的一切。我以前使用过这个代码没有问题。我在哪里错了?

回答

1

文件格式52是xlOpenXMLWorkbookMacroEnabledxlsm文件。如果要保存为.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 

http://www.rondebruin.nl/win/s5/win001.htm

+0

啊谢谢!这并没有解决问题,但绝对是一个无论如何都需要帮助的解决方案。任何其他想法?我会更新我的问题 – arbitel

+0

什么是错误? – Hambone

+0

另外,你可以显示'ExptdQBFileName'变量的值吗? – Hambone