我想在我的代码中引用不同的工作簿,我使用了这段代码:
Dim Basicwb As Excel.Workbook
Dim Basic As Excel.Application
Set Basic = New Excel.Application
Set Basicwb = Basic.Workbooks.Open("X:\Job\Masroori\3-042-PMS.xlsx")
但问题是,如果我不想每次打开它,我该如何引用它。我用过这段代码(没有.Open)但是我得到了这个错误! :“下标超出范围”
Set Basicwb = Basic.Workbooks("X:\Job\Masroori\3-042-PMS.xlsx")
另外,我不想每次都激活工作簿,有什么办法吗?
答案 0 :(得分:2)
从msdn
网站获取Workbooks
媒体资源:
“返回代表所有打开的工作簿的Workbooks
集合。只读。”
因此,由于文件未打开,代码的最后一行会出错。 AFAIK,如果该工作簿未打开,则无法引用工作簿中的对象。您可以访问任何工作簿而无需激活它(因此不使用.Activate
),但必须打开它。也许这个问题对你有帮助:
Open Excel file for reading with VBA without display
如果您的工作簿已打开,则可以执行以下操作:
Dim wBook as Excel.Workbook, rngTemp as range
Set wBook = workbooks("wbName.xls")
With wBook
' Do stuff, no need to activate. Example:
set rngTemp=.sheets(1).usedRange
End With
我希望这有帮助吗?