Ответ на поставленный вопрос
Path = "D:\folder1\folder2\Projects\The FILES\theFILES\" & FileName1 & "\"
Также см. дополнительную обратную связь и исправленный код для других отзывов.
Длинное объяснение ответа
Когда вы присваиваете значения строковой переменной, наиболее удобный способ сделать это выглядит так:
string = "This is my string value."
Однако вы можете часто видеть в коде с довольно длинной строкой синтаксис, такой как в следующем коде, чтобы весь текст помещался на экране разработки без прокрутки:
string = "This is my really, really, really long string value. I am making this " _
& "as long as I can, while also having something to write."
Если вы удалите _
и переместите все в одну строку, это будет выглядеть так:
string = "This is my really, really, really long string value. I am making this " & "as long as I can, while also having something to write."
Обратите внимание, что любая строка, присваиваемая переменной, может быть разбита таким образом:
string = "This is" & " my " & "string value."
' Returns the same result as:
string = "This is my string value."
Кроме того, если у меня есть строковая переменная str_val = " my "
, я мог бы использовать подстановку, чтобы записать приведенный выше пример как:
string = "This is" & str_val & "string value."
Дополнительные отзывы
В настоящее время порядок вашего кода (см. оригинальный код ниже):
- Определить переменные
- Назначить значение пути
- Назначить значение FileName1
- Назначить значение для FileName2
- Сохранить файл
К сожалению, это следование этому порядку означает, что на шаге 2) значение FileName1
является пустой строкой, ""
, так как ему еще не присвоено значение.
Следовательно, порядок, в котором вы должны следовать:
- Определение переменных
- Назначить значение FileName1
- Назначить значение FileName2
- Назначить значение пути
- Сохранить файл
Дополнительные переменные в строке
Был ответ, временно опубликованный @Davesexcel (затем измененный), в котором предполагалось, что folder1
и folder2
в вашей строке также являются переменными. Я приложил альтернативный код , если это действительно так.
Оригинальный код
Dim Path As String
Dim FileName1 As String
Dim FileName2 As String
Path = "D:\folder1\folder2\Projects\The FILES\theFILES\"FileName1"\
FileName1 = Range("B6")
FileName2 = Range("A1")
ActiveWorkbook.SaveAs Filename:=Path & FileName2 & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
Исправленный код
Dim Path As String
Dim FileName1 As String
Dim FileName2 As String
FileName1 = Range("B6")
FileName2 = Range("A1")
Path = "D:\folder1\folder2\Projects\The FILES\theFILES\" & FileName1 & "\"
ActiveWorkbook.SaveAs Filename:=Path & FileName2 & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
Альтернативный код
Dim Path As String
Dim FileName1 As String
Dim FileName2 As String
FileName1 = Range("B6")
FileName2 = Range("A1")
Path = "D:\" & folder1 & "\" & folder2 & "\Projects\The FILES\theFILES\" & FileName1 & "\"
ActiveWorkbook.SaveAs Filename:=Path & FileName2 & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled