我有这个代码试图打开一个文件:
Dim wbTemplate as Workbook
Dim template as String
template = ThisWorkbook.Path & "\sample.xlsx"
Set wbTemplate = Worbooks.Open(template)
我也尝试过:
Set wbTemplate = Worbooks.Open(filename:=template)
但他们两个都没有用。顺便说一句,活动工作簿和我尝试打开的文件具有相同的目录。有任何想法吗?谢谢!
答案 0 :(得分:1)
@RobinMackenzie发现了它。
但是您可以使用Option Explicit
以您的方案为例,如果您使用Option Expilict
,只有当您尝试执行代码并遇到错误时,VBE才会突出显示单词worbooks
此外,错误消息更准确:Variable not defined
如果没有Option Explicit
,VBE会突出显示整行,并引发误导性错误(正确但误导性):Object required
在这里,请阅读更多内容: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方法由于各种原因(对文件夹,受保护的工作簿等的访问权限)而失败。