2016-02-11 86 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