回答所述问题
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
.value
。FileName1 = Range("B6").value
___您还需要在路径名称周围加上引号。 - DavesexcelFileName1= ...
行移到开头,然后更改为Path = "D:\folder1\folder2\Projects\The FILES\theFILES\" & FileName1 & "\"
,再执行ActiveWorkbook.SaveAs Filename:= Path & FileName2 & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
即可。 - Vincent G