【发布时间】:2018-05-29 00:05:34
【问题描述】:
我正在尝试根据我对前两个组合框的选择创建三个列表框列。
这是我当前表单的截图:
我尝试过做案例,但这仅适用于两个组合框本身,不会说
有什么办法吗?
目前我有这个:
Private Sub UserForm_Initialize()
With StateComboBox
.AddItem "CO - Colorado"
End With
End Sub
____________________________________________________
Private Sub StateComboBox_Change()
Dim index As Long
index = StateComboBox.ListIndex
RoleComboBox.Clear
Select Case StateComboBox.Value
Case Is = "CO - Colorado"
With RoleComboBox
.AddItem "District"
.AddItem "School"
.AddItem "Test Administrator"
End With
End Select
End Sub
____________________________________________
Private Sub PermissionSetList_change()
If StateComboBox.Value = "CO - Colorado" And RoleComboBox.Value = "District" Then
Call ColoradoDPermissionSet
Call ColoradoDRemovePermissions
Call ColoradoDAddPermissions
End If
End Sub
____________________________________________
Sub ColoradoDPermissionSet()
With PermissionSetList
.AddItem "Administrator"
.AddItem "Correction Primary Window"
.AddItem "Documents - View"
End With
End Sub
________________________________________________________
Sub ColoradoDRemovePermissions()
With RemoveList
.AddItem "Corrections - Primary"
.AddItem "Student Transfer Form"
End With
End Sub
_________________________________________________
Sub ColoradoDAddPermissions()
With AddList
.AddItem "Test Tickets - End Incomplete Test"
.AddItem "Test Tickets - Invalidate"
.AddItem "Test Tickets - Regenerate"
End With
End Sub
我已在代码中放置了 IF 语句,当我选择 CO - Colorado 和 District 时,列表框将不会填充。我想让它在我选择状态和角色时在列表框中填充特定值,当我更改状态和/或角色时,它会给出一组不同的“权限”,这就是我放置的原因在 sub 中列出并调用它们。
【问题讨论】:
-
请进一步澄清您的问题。见stackoverflow.com/help/mcve ...你到底想在第三个列表框中做什么?
-
去掉
Call关键字,没用。然后删除逗号,它们是不合法的。并添加End If以关闭您的If块。 -
你有错误吗?请添加它们...“这不起作用”不是很有帮助...也许您需要在 IF 语句中访问列表框的 TEXT(或 SelectedItem)属性
-
您将 IF 语句放在哪里?即它什么时候被调用,你希望它什么时候被调用?
-
在代码中添加了 If 语句,当我选择 Colorado 和 District 时,它仍然将 List Boxes 留空
标签: vba combobox listbox dependencies