Макрос VBA для сохранения файла Excel, используя путь из ячейки

Я пытаюсь сохранить файл, используя комбинацию жесткой строки и значения ячейки для определения пути к файлу.

В клетке A29 У меня есть формула, которая выводит это:

2014 \ январь \High Cash 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

2 ответа

Решение

Я бы переписал так:

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

Я думаю, что все, что вам не хватает, это закрывающие двойные кавычки после части "Отчетность" вашего кода...

Предлагаем пойти дальше и убедиться, что все недопустимые символы имени файла, которые могут привести к ошибке сохранения, будут отфильтрованы

Этот код удаляет

[]/:*?"<>?

основной код

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
Другие вопросы по тегам