在VBA中打开文件

时间:2016-07-25 01:24:39

标签: excel vba excel-vba

我有这个代码试图打开一个文件:

Dim wbTemplate as Workbook
Dim template as String

template = ThisWorkbook.Path & "\sample.xlsx"
Set wbTemplate = Worbooks.Open(template)

我也尝试过:

Set wbTemplate = Worbooks.Open(filename:=template)

但他们两个都没有用。顺便说一句,活动工作簿和我尝试打开的文件具有相同的目录。有任何想法吗?谢谢!

3 个答案:

答案 0 :(得分:1)

@RobinMackenzie发现了它。

但是您可以使用Option Explicit

来避免这种混淆并消除误导性错误消息

以您的方案为例,如果您使用Option Expilict,只有当您尝试执行代码并遇到错误时,VBE才会突出显示单词worbooks enter image description here

此外,错误消息更准确:Variable not defined

如果没有Option Explicit,VBE会突出显示整行,并引发误导性错误(正确但误导性):Object required

enter image description here

在这里,请阅读更多内容:https://blogs.msdn.microsoft.com/developingfordynamicsgp/2009/08/06/what-does-option-explicit-do-in-vba/

答案 1 :(得分:0)

这就是我使用的,

Dim FileName As String

FileName = ActiveWorkbook.Path & "\CRMS.csv"
Workbooks.Open (FileName)

答案 2 :(得分:0)

尝试使用.Add而不是.Open:

Dim fName As String

fName = "YourPath\Sheetname.xlsx"
Workbooks.Add (fName)

或:

Set NewBook = Workbooks.Add(fName)
直到现在,它始终适合我。有时Open方法由于各种原因(对文件夹,受保护的工作簿等的访问权限)而失败。