如何用Excel VBA打开带有变量名称的工作簿

  • Share This
Hugh West

当然,我们可能需要在不同的目录中使用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相关 知识,从头开始了解。

对于这个问题,可以下载一个支持宏的工作簿,在那里你可以练习这些方法。

欢迎通过评论区提出任何问题或反馈。 任何关于改进的建议 优秀 社区将受到高度赞赏

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.