vba - 如何在路径中编写带有变量的vba

标签 vba excel variables path

这是我在此网站上发布的第二篇文章,我对 VBA 还比较陌生。

我今天的问题是,

如何将单元格值添加到路径字符串以指定我想要保存工作簿的文件夹。

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

提前致谢!

最佳答案

回答所述问题

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."
<小时/>

其他反馈

目前,您的代码顺序(参见下面的原始代码)是:

  1. 定义变量
  2. 为路径赋值
  3. 为 FileName1 赋值
  4. 为 FileName2 赋值
  5. 保存文件

不幸的是,遵循此顺序意味着在步骤 2) 中,FileName1 的值是一个空字符串,"",因为它尚未分配尚未值。

因此,您应该遵循的顺序是:

  1. 定义变量
  2. 为 FileName1 赋值
  3. 为 FileName2 赋值
  4. 为路径赋值
  5. 保存文件
<小时/>

字符串中的其他变量

@Davesexcel 临时发布了一个答案(然后更改),它假设字符串中的 folder1folder2 也是变量。我附上了替代代码,看看情况是否确实如此。

<小时/>

原始代码

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

关于vba - 如何在路径中编写带有变量的vba,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50375590/

相关文章:

vba - 如何根据VBA中的内容更改单元格

Excel vba从不同的Excel应用程序访问工作簿实例

excel - 选择案例错误 : Object variable of With block variable not set

java - JAXB 有没有办法解码静态变量?

excel - 将文件夹中的pdf文件名导出到excel

excel - 如何在vba中的Rows()函数中使用OFFSET函数

variables - 如何将多个变量传递给 Angular 2 中的一个组件?

php - 如何在 PHP 中将变量重置为 NULL?

vba - winsock 连接功能仅适用于高速连接

java - 使用 Apache POI 复制 Excel 工作表