VBAmacros使用单元格的path保存excel文件

我试图用硬线和单元格值的组合来保存文件以确定文件path。

在单元格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 

我会重写如下:

 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 

我想你所缺less的是你的代码的“报告”部分之后的双引号。

build议你更进一步,并确保任何无效的文件名字符,将出现保存错误被过滤掉

此代码删除

[] /:*“<>?

主要代码

 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

 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