【发布时间】:2018-04-20 21:43:00
【问题描述】:
我想打开 Excel xlsx 文件而不使用变量写入路径。我不知道为什么,但它不起作用。我有一个包含主工作簿的文件夹和另一个要打开的文件夹,即 xlsx。我想把它命名为 UnionWB。
Private Sub cmdStartMonth_Click()
'Optimize Macro Speed
Application.ScreenUpdating = False
Application.EnableEvents = False
'Analyze month by selecting
Dim myPath As String
Dim myFile As String
Dim UnionWB As Workbook
Dim MonthName As String
MonthName = ListMonth.Value
myExtension = "*.xlsx*"
Set UnionWB = Workbooks.Open(ThisWorkbook.Path & myExtension)
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
设置 UnionWB = Workbooks.Open(ThisWorkbook.Path & myExtension)
【问题讨论】:
-
您计算机上的文件在哪里?声明文件夹路径有什么问题,它应该是动态的吗?
-
我希望它是动态的。并且文件夹名称不是英文的,我不能在代码中使用。 @Luuklag
-
@Luuklag 编辑后你明白我的意思吗?
-
您的代码说文件名是
*.xlsx,而不是特定的文件名。myExtension未声明,ThisWorkbook.Path末尾不会有文件分隔符 - 它应该是ThisWorkbook.Path & "\" & myExtension。不过,您仍然需要弄清楚它试图打开哪个文件 -*.xlsx不是指单个文件。MonthName不在任何地方使用,也不需要ScreenUpdating和EnableEvents。 -
“不写路径”是什么意思。
ThisWorkbook.Path是一个非常静态的路径 - 它是保存包含代码的工作簿的位置,因此您尝试打开的工作簿必须与原始文件位于同一文件夹中。