无法在Excel VBA UserForm中设置多列列表框的选定属性
我无法检查多列用户表单列表框中的项目。行无法在Excel VBA UserForm中设置多列列表框的选定属性,excel,vba,multiple-columns,userform,checkedlistbox,Excel,Vba,Multiple Columns,Userform,Checkedlistbox,我无法检查多列用户表单列表框中的项目。行lstPremissionLogic.Selected(lstPremissionLogic.ListCount)=True生成以下错误: 运行时错误“380”:无法设置所选属性。无效的属性值 我尝试将该值设置为-1,已选中,但无效 VBA代码 Private Function FillPreConditionLogicList() Dim varTemp As Variant Dim intLoop
lstPremissionLogic.Selected(lstPremissionLogic.ListCount)=True
生成以下错误:
运行时错误“380”:无法设置所选属性。无效的属性值
我尝试将该值设置为-1
,已选中,但无效
VBA代码
Private Function FillPreConditionLogicList()
Dim varTemp As Variant
Dim intLoop As Integer
Dim strExpression As String
Dim PreConditionLogic As clsPreConditionLogic
With lstPreConditionLogic
.ColumnCount = 3
.ListStyle = fmListStyleOption
.MultiSelect = fmMultiSelectMulti
strExpression = TrimBlank(shtExpressionEditor.Range("rngExpText").Offset(, 1).Value)
For intLoop = 0 To mDicPreConditionLogic.Count - 1
Set PreConditionLogic = mDicPreConditionLogic.Items(intLoop)
.AddItem
.List(intLoop, 0) = PreConditionLogic.Name
.List(intLoop, 1) = PreConditionLogic.StartEnclosure
.List(intLoop, 2) = PreConditionLogic.EndEnclosure
varTemp = GetEnclosedString(strExpression, PreConditionLogic.StartEnclosure, PreConditionLogic.EndEnclosure)
If varTemp <> "" Then
lstPreConditionLogic.Selected(lstPreConditionLogic.ListCount) = True '//Gives Error
strExpression = varTemp
End If
Next
End With
End Function
Private函数fillPremissionLogicList()
Dim varTemp作为变型
作为整数的Dim intLoop
作为字符串的Dim strExpression
作为clsPreConditionLogic的Dim预处理逻辑
用逻辑
.ColumnCount=3
.ListStyle=fmListStyleOption
.MultiSelect=fmMultiSelectMulti
strExpression=TrimBlank(shtExpressionEditor.Range(“rngExpText”).Offset(,1.Value)
对于intLoop=0到mDicPreConditionLogic.Count-1
设置预条件逻辑=mDicPreConditionLogic.Items(intLoop)
.AddItem
.List(intLoop,0)=预处理逻辑.Name
.List(intLoop,1)=预处理逻辑.StartEnclosure
.List(intLoop,2)=预处理逻辑.endnClosure
varTemp=GetEnclosedString(strExpression、premissionlogic.StartEnclosure、premissionlogic.EndEnclosure)
如果varTemp“”那么
lstPremissionLogic.Selected(lstPremissionLogic.ListCount)=True'//给出错误
strExpression=varTemp
如果结束
下一个
以
端函数
您必须从.ListCount
中减去-1
lstPreConditionLogic.Selected(lstPreConditionLogic.ListCount - 1) = True
因为列表索引统计在0
处计数,但是如果ListCount=5
,那么这5个条目的索引是0
,1
,2
,3
,4
,这意味着最后一个有效的索引是.ListCount-1