Table of contents
当然,我们可能需要在不同的目录中使用VBA从父级Excel文件中打开文件。 但同时,我们也有各种类型的标准,也是关于如何打开工作簿的。 如果你很想知道如何用变量名打开工作簿,那么这篇文章可能对你很有用。 在这篇文章中,我们讨论如何用变量名打开工作簿在Excel中使用VBA,并有详细的解释。
下载实践工作手册
在下面下载这个练习手册。
使用VBA打开带有变量名称的工作簿.xlsm
样本.xlsx
在Excel中使用VBA打开带有变量名称的工作簿的4种简单方法
我们将使用下面的数据集进行演示。 我们有几个产品的产品信息和它们的ID,这是一个样本文件,我们将使用VBA代码打开。
1.使用Workbook.Open属性
使用 工作簿.打开 属性,我们可以通过提及目录来打开文件,也可以不提及位置。 我们还可以使打开的文件成为只读。
1.1 打开工作簿,提及文件路径
在下一个方法中,我们将使用 Workbook.Open属性 无论文件在哪里,我们都可以很容易地打开该文件。
阶梯
- 我们有一个文件存储在文档文件夹中,我们需要打开它。
- 我们将使用文件名作为一个变量,然后用一个小的VBA宏来打开该文件。
- 该文件的确切文件目录在属性窗口中显示如下。
- 首先,去到 开发商 选项卡,并点击 视觉基础 如果你没有这些,你必须 启用 "开发人员 "选项卡 或者你也可以按' Alt+F11'。 用于打开 Visual Basic编辑器 .
- 然后会出现一个新的对话框,在该对话框中,点击 插入 > 模块 .
- 接下来,在 模块 编辑器窗口,输入以下代码。
Sub Open_with_File_Path() Dim Open_File As String: File_path = "C:\Users\User\OneDriveDocuments\Sample" Dim wrkbk As Workbook Set wrkbk = Workbooks.Open(Filename:=File_path) End Sub
- 然后关闭 模块 窗口。
- 之后,去到 查看 标签> 巨集 .
- 然后点击 查看宏 .
- 在点击 查看宏程序。 选择你刚才创建的宏,这里的名称是 用文件路径打开 .然后点击 运行 .
- 此后 样品 文件将被打开。
🔎 代码的分解
子Open_with_File_Path()
⮚ 首先,我们为子程序提供一个名称,即 用文件路径打开 .
Dim Open_File As String: File_path = "C:\Users\User\OneDrive\Documents\Sample"
⮚ 然后,我们把文件的位置放在 文件路径 变量
Dim wrkbk As Workbook
⮚ 然后,我们声明我们的变量 wrkbk ,其类型是一个工作簿。
Set wrkbk = Workbooks.Open(Filename:=File_path)
⮚ 然后,我们打开名为 文件路径 目录变量,并将该文件设置为 wrkbk 变量。
结束子程序
⮚ 最后,我们结束这个代码的子程序。
阅读更多。 如何用Excel VBA从路径打开工作簿(4个例子)
1.2 打开工作簿而不提及文件路径
在下一个方法中,我们将从保存主文件的父文件夹中打开文件。 该文件可以在代码中不提及任何位置而打开。 这个文件只需与父文件夹在同一文件夹中。
阶梯
- 我们有一个不同的文件,保存在同一目录下,现在父Excel文件保存在这里。
- 文件名是1。
- 首先,去到 开发商 选项卡,并点击 视觉基础 如果你没有这一点,你必须 启用 "开发人员 "选项卡 或者你也可以按' Alt+F11 '用于打开 Visual Basic编辑器 .
- 然后会出现一个新的对话框,在该对话框中,点击 插入 > 模块 .
- 接下来,在 模块 编辑器窗口,输入以下代码。
Sub Open_without_File_Path() Dim wrkbk As Workbook Set wrkbk = Workbooks.Open(Filename:="1.xlsx") End Sub
- 然后关闭 模块 窗口。
- 之后,去到 查看 标签> 巨集 .
- 然后点击 查看宏 .
- 点击查看宏后,选择你刚才创建的宏。 这里的名称是 在没有文件路径的情况下打开 然后点击运行。
- 在按下 运行 你会注意到,名为1的文件现在已经打开。
- 这就是我们如何在Excel中使用VBA打开带有变量名称的工作簿。
🔎 代码的分解
子Open_without_File_Path()
⮚ 首先,我们为子程序提供一个名称,即 子Open_without_File_Path()
Dim wrkbk As Workbook
⮚ 我们声明 wrkbk 作为工作簿类型中的一个变量
Set wrkbk = Workbooks.Open(Filename:="1.xlsx")
⮚ 我们从父目录中打开名为 1.xlsx .
结束子程序
⮚ 最后,我们结束这个代码的子程序。
1.3 以只读方式打开工作簿
该方法与第一种方法很相似,但在这里我们将以只读模式打开文件,这意味着我们将无法改变Excel文件中的任何数据或数值。
阶梯
- 我们要打开的文件被保存在文档文件夹中。
- 这就是我们想以只读方式打开的文件。
- 首先,去到 开发商 选项卡,并点击 视觉基础 如果你没有这一点,你必须 启用 "开发人员 "选项卡 或者你也可以按' Alt+F11 '用于打开Visual Basic编辑器。
- 然后会出现一个新的对话框,在该对话框中,点击 插入 > 模块 .
- 接下来,在 模块 编辑器窗口,输入以下代码。
Sub Open_with_File_Read_Only() Dim wrkbk As Workbook Set wrkbk = Workbooks.Open("C:\Users\User\OneDrive\Documents\Sample", ReadOnly:=True) End Sub
- 然后关闭 模块 窗口。
- 之后,去到 查看 标签> 巨集 .
- 然后点击 查看宏 .
- 点击查看宏后,选择你刚才创建的宏。 这里的名称是 只读文件的打开方式 .然后点击 运行 .
- 在点击 运行 ,我们将看到该文件现在是以只读方式打开的,如标题栏中所示。
🔎 代码的分解
子Open_with_File_Read_Only()
⮚ 首先,我们为子程序提供一个名称,即 Open_with_File_Read_Only()
Dim wrkbk As Workbook
⮚ 我们声明 wrkbk 作为工作簿类型中的变量
Set wrkbk = Workbooks.Open("C:\Users\User\OneDrive\Documents\Sample", ReadOnly:=True)
⮚ 然后,文件将从指定的目录中打开,文件将被设置为 只读 由最后一个参数决定。
结束子程序
⮚ 最后,我们结束这个代码的子程序。
阅读更多。 如何用Excel VBA将工作簿打开为只读?
2.使用留言箱
与前面的方法几乎相似,我们可以通过VBA代码在Excel中打开文件,但在这种情况下,我们将在这里加入一个小的消息框。
阶梯
- 首先,去到 开发商 选项卡,并点击 视觉基础 如果你没有这些,你必须 启用 "开发人员 "选项卡 或者你也可以按' Alt+F11'。 用于打开 Visual Basic编辑器 .
- 然后会出现一个新的对话框,在该对话框中,点击 插入 > 模块 .
- 接下来,在 模块 编辑器窗口,输入以下代码。
Sub Open_File_with_Messege_Box() Dim path As String: path = "C:\Users\User\OneDriveDocuments\Sample.xlsx" If Dir(path) "" Then Workbooks.Open (path) MsgBox "文件成功打开" Else MsgBox "文件打开失败" End If End Sub
- 然后关闭 模块 窗口。
- 之后,去到 查看 标签> 巨集 .
- 然后点击 查看宏 .
- 在点击 查看宏程序。 选择你刚才创建的宏,这里的名称是 打开文件,并将其放在盒子里。 .然后点击 运行 .
- 然后我们得到了警告框,它显示出 文件成功地打开了 .
- 然后点击 认可 .
- 然后我们会看到,该文件现在已经打开。
- 然后我们试着改变一下代码。
- 我们将文件名改为 样本10 的文件,实际上并没有名为 样本10 文件夹中。
- 然后我们 运行 再次输入代码,有一个信息框说 打开文件失败 .
- 点击 认可 在这之后。
🔎 代码的分解
子Open_File_with_Messege_Box()
⮚ 首先,我们为子程序提供一个名称,即 Open_with_File_Read_Only()
Dim path As String:
⮚ 我们声明 wrkbk 作为工作簿类型中的一个变量
如果Dir(path) "" 那么Workbooks.Open (path)
MsgBox "文件已成功打开" Else
⮚ 这一行将检查名为Sample的文件在目录中是否可用,如果该文件在那里,那么它将打开该文件,同时将显示信息。
MsgBox "打开文件失败"
⮚ 如果没有一个名为 样品 目录中,那么这条信息将被传递。
End If
⮚ 最后,我们结束这个代码的子程序。
结束子程序
⮚ 最后,我们结束这个代码的子程序。
阅读更多。 如何使用VBA打开工作簿并运行宏程序(4个例子)
3.使用对话框来打开文件
每次在VBA代码中提取文件位置目录并导入它们是相当麻烦的。 为了解决这个问题,我们将展示如何使用一个对话框从任何目录中选择文件。
阶梯
- 现在我们将使用文件资源管理器对话框打开该文件。
- 首先,去到 开发商 选项卡,并点击 视觉基础 如果你没有这一点,你必须 启用 "开发人员 "选项卡 或者你也可以按' Alt+F11'。 用于打开 Visual Basic编辑器 .
- 然后会出现一个新的对话框,在该对话框中,点击 插入 > 模块 .
- 接下来,在 模块 编辑器窗口,输入以下代码。
Sub Open_File_with_Dialog_Box() Dim Dbox As FileDialog Dim File_Path As String Dim wrkbk As Workbook Set Dbox = Application.FileDialog(msoFileDialogFilePicker) Dbox.Title = "选择并打开" & FileType Dbox.Filters.Clear Dbox.Show If Dbox.SelectedItems.Count = 1 Then File_Path = Dbox.SelectedItems(1) End If Set wrkbk = Workbooks.Open(Filename:=File_Path) End Sub
- 然后关闭 模块 窗口。
- 之后,去到 查看 标签> 巨集 .
- 然后点击 查看宏 .
- 在点击 查看宏程序。 选择你刚才创建的宏,这里的名称是 用对话框打开文件 .然后点击 运转 .
- 然后打开一个新窗口。 在文件资源管理器对话框中,选择 样品 并点击 认可 .
- 然后将文件命名为 样品 打开了。
- 这就是我们如何在Excel中使用VBA打开带有变量名称的工作簿。
🔎 代码的分解
Sub Open_File_with_Dialog_Box()
⮚ 首先,我们为子程序提供一个名称,即 Sub Open_File_with_Dialog_Box()
Dim Dbox As FileDialog
⮚ 我们声明 Dbox 作为一个变量在 文件对话框 类型
Dim File_Path As String
⮚ 我们声明 文件路径 作为一个变量,在 文件路径 如 字符串 类型
Set Dbox = Application.FileDialog(msoFileDialogFilePicker) Dbox.Title = "选择并打开" & FileType
⮚ 从第一行开始会有一个对话框。 下一行表示对话框名称和文件类型。
⮚ Dbox.Title 将设置对话框的标题。 和 文件类型
设置文件类型。
Dbox.Filters.Clear
⮚ 该 Dbox.Filters.Clear 将清除之前应用在Diaog盒子里的任何过滤器
Dbox.Show
⮚ 该 Dbox.Show 将使对话框出现在文件上。
⮚ 这一行将决定用户是否选择了一个以上的文件。 如果用户选择了一个以上的文件,整个程序将停止。
结束子程序
⮚ 最后,我们结束这个代码的子程序。
阅读更多。 如何用Excel VBA打开文件夹和选择文件(4个例子)
4.使用Workbook.Add属性
与之前的方法相反,我们将在一个预先确定的目录中创建一个新的Excel文件,然后我们将用以下方法打开它 工作手册。 加 财产。
阶梯
- 首先,去到 开发商 选项卡,并点击 视觉基础 如果你没有这些,你必须 启用 "开发人员 "选项卡 或者你也可以按' Alt+F11'。 用于打开 Visual Basic编辑器 .
- 然后会出现一个新的对话框,在该对话框中,点击 插入 > 模块 .
接下来,在 模块 编辑器窗口,输入以下代码。
Sub Open_File_with_Add_Property() Dim File_Path As String: File_Path = "C:\Users\User\OneDrive\Documents\Sample.xlsx" Dim wb As Workbook Set wb = Workbooks.Add(File_Path) End Sub
- 然后关闭 模块 窗口。
- 之后,去到 查看 标签> 巨集 .
- 然后点击 查看宏 .
- 在点击 查看宏程序。 选择你刚才创建的宏,这里的名称是 Open_File_with_Add_Property .然后点击 运行 .
- 在点击 运行。 你会注意到,现在已经创建并打开了一个新的文件。
🔎 代码的分解
⮚ 首先,我们为子程序提供一个名称,即 子Open_File_with_Add_Property()
⮚ 然后我们宣布 文件路径 变量为 字符串 类型。
Dim File_Path As String: File_Path = "C:\Users\User\OneDrive\Documents\Sample.xlsx"
⮚ 并设定 文件路径 变量到文件的位置。
Dim wb As Workbook
⮚ 我们声明 wb 作为一个变量,在 工作手册 类型。
Set wb = Workbooks.Add(File_Path)
⮚ 然后,从存储在以下目录中添加工作簿 文件路径 的位置,使用 Workbook.Add 财产。
结束子程序
⮚ 最后,我们结束这个代码的子程序。
阅读更多。 [固定!]对象工作簿的方法打开失败(4个解决方案)。
总结
综上所述,我们如何用VBA打开带有变量名称的工作簿的问题,在此由4个不同的例子来回答。 该例子 VBA宏程序 方法需要事先 VBA相关 知识,从头开始了解。
对于这个问题,可以下载一个支持宏的工作簿,在那里你可以练习这些方法。
欢迎通过评论区提出任何问题或反馈。 任何关于改进的建议 优秀 社区将受到高度赞赏