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