Dim InputCol, InputIndex, i As Long
Dim lb As ListBox
InputCol = 1
For i = 1 To 7
Set lb = Me.Controls("ListBox" & i)
For InputIndex = 0 To lb.ListCount - 1
If lb.Selected(InputIndex) Then
Sheets("Sheets2").Cells(1, InputCol) = Sheets("Sheet1").Range("Input" & i).Cells(InputIndex)
InputCol = InputCol + 1
End If
Next
Next i
我尝试使用上面的代码遍历用户表单中的多个列表框。列表框从Sheet1上的命名范围派生数据,然后将标题传递给Sheet2。 Sheet1范围按编号与列表框对齐。不幸的是,我收到了运行时错误' 13':类型不匹配引用该行:
Set lb = Me.Controls("ListBox" & i)
有什么想法吗?
答案 0 :(得分:0)
使用以下代码循环浏览Control
中的所有UserForm
,并检查当前控件是否为ListBox
。
注意:Dim InputCol, InputIndex, i As Long
,表示只有i
被定义为Long
,而InputCol
和InputIndex
被定义为{{} 1}}。
<强>代码强>
As Variant
答案 1 :(得分:0)
非常感谢Shai Rado向我展示了正确的方向。以下代码用于遍历userform上的所有列表框,并将每个选定项目传递给Sheet2上的标题行:
//...
ga('create', 'UA-xxxxxxxxxx-7', 'auto');
if (navigator.userAgent == "UserAgentXUI765DQZ"){
ga('set', 'dimension1', 'Internal User'); //Make sure "dimension1" matches what Google generated. You can change "Internal User" to anything you'd like.
}
ga('send', 'pageview');
//...