在不使用.activate的情况下切换不同的工作簿
我想在我的代码中引用不同的工作簿,并使用了以下代码:
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")
另外,我不想每次都激活工作簿,有什么办法吗?
从Workbooks
属性的msdn
网站采取:
“返回表示所有打开的工作簿的Workbooks
集合,只读”。
因此你的代码的最后一行给你一个错误,因为该文件没有打开。 AFAIK,如果工作簿未打开,则不能在工作簿中引用对象。 你可以访问任何一个工作簿,而不用激活它(所以没有使用.Activate
),但它必须是开放的。 也许这个问题对你有帮助:
使用VBA打开Excel文件,无需显示
如果您的工作簿已打开,则可以执行以下操作:
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
我希望这有帮助?