填充ComboBox时无效的过程调用或参数vba
问题描述:
我有2个excel文件和主excel文件我有2个comboBox元素,其中一个应该从另一个工作表和另一个工作簿中填充,当我尝试填充时此组合框通过使用来自另一个工作簿这样填充ComboBox时无效的过程调用或参数vba
Private Sub Worksheet_Activate()
ThisWorkbook.Sheets("Master").ComboBox23.List = Sheets("Modification").Range("C2:C55").Value
ThisWorkbook.Sheets("Master").ComboBox24.List = GetObject(ThisWorkbook.Path & "\resourcetracker.xls").Sheets("Resources").Range("A2:A22").Value
End Sub
数据我可以从主excel文件另一个工作表中获取数据,但线在那里我打开另一个工作簿给我一个错误
无效的过程调用或参数(运行时错误5)
有人可以帮助理解我做错了什么吗? 感谢
答
GetObject
不打开另一个WorkBook
试试这个正确的方式,而不是
Public Sub Worksheet_Activate()
Dim wb As Workbook
ThisWorkbook.Sheets("Master").ComboBox23.List = Sheets("Modification").Range("C2:C55").Value
Set wb = Workbooks.Add(ThisWorkbook.Path & "\resourcetracker.xls")
ThisWorkbook.Sheets("Master").ComboBox24.List = wb.Sheets("Resources").Range("A2:A22").Value
wb.Close False
End Sub
这种方式给了我另一个错误 - 运行时错误1004“应用程序定义或对象定义的错误”在“Set wb ...”的时刻 –
在它之前添加它 - “Debug.Print ThisWorkbook.Path&”\ resourcetracker.xls“'然后看看你的调试窗口。该文件是否存在于该位置? – braX
这很有趣;我有这两个文件在一个文件夹〜“C:\用户\用户1 \ Documents \ Excel文件\”和我的想法ThisWorkbook.Path只是为了节省时间,如果文件将被移动;在我用完整地址代替它之后,所有的工作都可以使用;和ThisWorkbook.Path完全返回此部分“C:\ Users \ User1 \ Documents \ Excel文件” –