【发布时间】:2016-08-26 20:57:34
【问题描述】:
---更新---
感谢您的回复,我发现 DragonSamu 的更新答案非常有效。
---原帖---
在过去的几个小时里,我一直试图找出哪里出错了,但我找不到。我认为这是因为脚本试图从活动工作表中提取值,这不是我想要的。希望有人能把我放在仪式轨道上——我认为答案应该是相对明显的,但我就是看不到!
基本上,我正在尝试使用另一个工作表(但在同一个工作簿中)中存在的动态值范围填充组合框。当我在工作表“材料”(这是动态列表的来源)中运行脚本时,我可以填充组合框,但在工作表“产品”中运行它时却不能。
不幸的是,该脚本旨在使用材料填充产品,因此当“产品”工作表打开且“材料”工作表将处于非活动状态时,它会在用户窗体中运行。
我还应该注意,这个脚本是根据我在这个论坛其他地方找到的代码改编的,所以如果它看起来很熟悉,我提前感谢你:)
Private Sub UserForm_Initialize()
Dim rRange As Range
On Error GoTo ErrorHandle
'We set our range = the cell B7 in Materials
Set rRange = Worksheets("Materials").Range("B7")
'Check if the cell is empty
If Len(rRange.Formula) = 0 Then
MsgBox "The list is empty"
GoTo BeforeExit
End If
'Finds the next empty row and expands rRange
If Len(rRange.Offset(1, 0).Formula) > 0 Then
Set rRange = Range(rRange, rRange.End(xlDown))
End If
'The range's address is our rowsource
Mat1_Name_ComBox.RowSource = rRange.Address
Mat2_Name_ComBox.RowSource = rRange.Address
Mat3_Name_ComBox.RowSource = rRange.Address
Mat4_Name_ComBox.RowSource = rRange.Address
Mat5_Name_ComBox.RowSource = rRange.Address
BeforeExit:
Set rRange = Nothing
Exit Sub
ErrorHandle:
MsgBox Err.Description
Resume BeforeExit
End Sub
非常感谢任何帮助。
干杯,
西蒙
【问题讨论】:
-
代码哪里报错了?
-
该代码实际上并没有引发错误,这也是为什么一直让我如此困惑的部分原因。当产品工作表处于活动状态时,组合框不会填充。