【发布时间】:2023-04-06 04:01:01
【问题描述】:
我编写了一个简单版本的用户表单来查明我的问题。
ListBox1 lstClassName 的选择决定了 ListBox2 lstClassName 的选项(工作)。
ListBox2 的选择应该确定 ListBox3 的选项 lstLanguage(不起作用)。
类似问题的答案比我需要这个用户表单做的更多。
我将文件上传到 Google 云端硬盘。您可以看到该表单的工作方式。 Link To Excel File
Option Explicit
Public ClassX As Integer
Public LanguageX As Integer
Private Sub UserForm_Initialize()
With lstClassName
.AddItem "Cooking"
.AddItem "Art"
.AddItem "Music"
End With
End Sub
Private Sub lstClassName_Click()
ClassX = lstClassName.ListIndex
Select Case ClassX
Case Is = 0 'Cooking Class
lstLanguage.Clear
lstLanguage.AddItem "English"
lstLanguage.AddItem "Spanish"
Case Is = 1 'Art Class
lstLanguage.Clear
lstLanguage.AddItem "English"
lstLanguage.AddItem "French"
Case Is = 2 'Music Class
lstLanguage.Clear
lstLanguage.AddItem "English"
lstLanguage.AddItem "Spanish"
lstLanguage.AddItem "French"
End Select
End Sub
Private Sub lstLanguage_Click()
LanguageX = lstLanguage.ListIndex
Select Case LanguageX
Case (ClassX = 0 And LanguageX = 0) 'Cooking Class in English
lstDay.Clear
lstDay.AddItem "Monday"
lstDay.AddItem "Wednesday"
Case (ClassX = 0 And LanguageX = 1) 'Cooking Class in Spanish
lstDay.Clear
lstDay.AddItem "Monday"
lstDay.AddItem "Thursday"
Case (ClassX = 1 And LanguageX = 0) 'Art Class in English
lstDay.Clear
lstDay.AddItem "Tuesday"
lstDay.AddItem "Friday"
Case (ClassX = 1 And LanguageX = 1) 'Art Class in French
lstDay.Clear
lstDay.AddItem "Wednesday"
lstDay.AddItem "Thursday"
Case (ClassX = 2 And LanguageX = 0) 'Music Class in English
lstDay.Clear
lstDay.AddItem "Monday"
lstDay.AddItem "Friday"
Case (ClassX = 2 And LanguageX = 1) 'Music Class in Spanish
lstDay.Clear
lstDay.AddItem "Tuesday"
lstDay.AddItem "Wednesday"
Case (ClassX = 2 And LanguageX = 2) 'Music Class in French
lstDay.Clear
lstDay.AddItem "Thursday"
lstDay.AddItem "Friday"
End Select
End Sub
Private Sub CommandButton1_Click()
'This would then be the button to add data to a part of the spreadsheet
End Sub
注意:我没有费心完成命令按钮的代码或如何处理此用户窗体中的数据。
【问题讨论】:
标签: vba if-statement listbox userform select-case