gpt4 book ai didi

vba - 选择工作簿时运行时错误9下标超出范围

转载 作者:行者123 更新时间:2023-12-03 01:36:47 24 4
gpt4 key购买 nike

我正在尝试使用 VBA 在 Excel 2010 中构建数据输入表单。在表单初始化期间,我设置一个对象来引用另一个工作表,以便我可以访问它。这就是我所拥有的:

Private Sub UserForm_Initialize()

Dim master As Excel.Workbook
Dim masterworksheetFmn As Excel.Worksheet
Dim masterworksheetAdv As Excel.Worksheet
Dim masterworksheetTechs As Excel.Worksheet

Dim i As Integer

Set master = Excel.Workbooks("ServiceReturnsMaster.xlsm")
Set masterworksheetFmn = master.Worksheets("Foremen")
Set masterworksheetAdv = master.Worksheets("Advisors")
Set masterworksheetTechs = master.Worksheets("Techs")

当我运行宏时,我收到“运行时错误 9:下标超出范围”。这发生在这一行:

Set master = Excel.Workbooks("ServiceReturnsMaster.xlsm")

但是,如果我在运行宏之前打开第二个工作簿,则不会发生错误。我假设我必须先激活第二个工作簿或其他内容,否则我的引用文献书写不正确。我可以找到很多对此运行时错误的引用,但没有一个直接解决我想要做的事情。我做错了什么?

最佳答案

当您使用Excel.Workbooks时,您指的是通用Workbooks集合。如果您想访问当前应用程序中的 Workbooks 集合,则需要使用 Application.Workbooks

您也可以在没有 Application 限定符的情况下使用它,因为它假定您正在当前应用程序实例中工作,因此

Set master = Application.Workbooks("ServiceReturnsMaster.xlsm")

Set master = Workbooks("ServiceReturnsMaster.xlsm")

两者的工作原理应该相同。

<小时/>

或者,如果您的工作簿在运行时未打开,则需要改用 Workbooks.Open() 方法:

Set master = Workbooks.Open("C:\Path\to\ServiceReturnsMaster.xlsm")

关于vba - 选择工作簿时运行时错误9下标超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49394190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com