EXCEL VBA:使用VBA打开XLSM EXCEL

EXCEL VBA:使用VBA打开XLSM EXCEL,vba,excel,Vba,Excel,我无法找出我代码中的错误 If cboUnit.Text = "MARINER" Then Application.ScreenUpdating = False Application.Workbooks.Open Filename:=ThisWorkbook.Path & "\UNIT" & "\MARINER" ThisWorkbook.Activate Workbooks("TOUKEI DATA REPORT GRAPHING").Close End If 我只想打开文

我无法找出我代码中的错误

If cboUnit.Text = "MARINER" Then
Application.ScreenUpdating = False
Application.Workbooks.Open Filename:=ThisWorkbook.Path & "\UNIT" & "\MARINER"
ThisWorkbook.Activate
Workbooks("TOUKEI DATA REPORT GRAPHING").Close
End If
我只想打开文件夹单元上的xlsm文件 但我总是犯一个错误:

运行时错误“1004”
这个文件的扩展名是“xlsx”

如果您使用类似的东西,它至少会使调试更简单。然后用这行代码替换我提供的代码:

Application.Workbooks.Open Filename:=ThisWorkbook.Path & "\UNIT" & "\MARINER"  
与其他变量一起声明变量。我理解你的问题是“水手”是文件名。如果不是,则需要更改fileNPath

Dim path As String, fileNPath As String

'add these two values above your code
path = ActiveWorkbook.path
fileNPath = path & "\UNIT\MARINER.xlsm"

Application.Workbooks.Open fileName:=fileNPath   'Change this line 
完成此操作后,您可以在调试模式下查看文件路径的值,在该模式下,您所拥有的版本在该行无法正常工作之前不会有值。这样,在你尝试使用它之前,你可以看到发生了什么


注意:要拥有启用宏的工作簿,它必须是.xlsm,而不是.xlsx

FWIW,该代码似乎有效。我只是在“文档”文件夹中右键单击了一个启用宏的工作簿,并将其粘贴到代码中,然后从字符串中删除了
.xlsm
。工作正常。您是否尝试过向路径添加扩展名,如
“\MARINER\filenam.xlsm”
?我知道了,我在MARINER前面省略了“\”,在UNIT后面添加了“\”:为了清楚起见,您将MARINER.xlsx和MARINER.xlsm放在同一个文件夹中,并且您想打开MARINER.xlsm?不相关,但您使用“\UNIT”有具体原因吗&“\MARINER”而不是“\UNIT\MARINER”?