2014-01-07 124 views
2

我試圖使用硬線和單元格值的組合來保存文件以確定文件路徑。VBA宏使用單元格路徑保存excel文件

在細胞A29,我有這個輸出一個公式:

2014 \月\高現金1.7.14

我發現了一個預期:聲明錯誤的結束。

的代碼是:

ActiveWorkbook.SaveAs Filename:="S:\IRD\Tamarac\Daily High Cash Reporting\& Range("A29").Text & ".xlsx", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False 
+0

SO的語法高亮已經顯示錯誤。 –

回答

4

我會重新寫如下:

Dim fileName As String 
fileName = "S:\IRD\Tamarac\Daily High Cash Reporting\" & Range("A29").Text & ".xlsx" 
ActiveWorkbook.SaveAs Filename:=fileName, FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False 

我認爲你缺少的是的「報告\」的一部分之後結束的雙引號你的代碼...

+0

我是盲人。謝謝! – user3009860

+0

其實,我現在正在複製你的代碼,並且它在FileFormat ...幫助之後的「_」上給了我一個錯誤? – user3009860

+0

嘗試在xlNormal之前和CreateBackup之前刪除「_」。我編輯了我的建議答案。 – MarkHone

5

建議你更進一步,並確保任何無效的文件名字符,以防萬一保存錯誤被過濾掉

該代碼去除

[] /:*?」 <>

主代碼

Sub CleanSave() 
Dim fileName As String 
fileName = "C:\temp\" & strClean(Range("A29").Value) & ".xlsx" 
ActiveWorkbook.SaveAs fileName:=fileName, FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False 
End Sub 

清潔功能

Function strClean(strIn As String) As String 
Dim objRegex As Object 
Set objRegex = CreateObject("vbscript.regexp") 
With objRegex 
    .Pattern = "[\[\]|\/\\:\*\?""<>]" 
    .Global = True 
    strClean = .Replace(strIn, vbNullString) 
End With 
End Function 
+2

我使用不同的清潔功能,但這也進入我的數據庫以及:) –

+0

Brett和@Siddharth聲明它作爲一個子和一個函數有什麼區別? – tannman357

相關問題