如何使用 Word 中实际文本中的字符(仅限小写英文 abc)填充 ListBox?

如何使用 Word 中实际文本中的字符(仅限小写英文 abc)填充 ListBox?

任务如下:

创建一个带有列表框、两个组合框和一个命令按钮的用户窗体。列表框应使用文本中的小写字符(仅 ASCII 97-122)按升序填充,并且每个字符应仅出现一次。

我对 VBA 还很陌生,仍在努力了解编程背后的思维方式,但遗憾的是考试不会等我。考试就是这么无情。

我原本想使用 Asc() 函数来填充列表框,并且我对 For 迭代有了基本的了解,但我觉得我需要在 For 迭代中的 For 迭代中进行 If 选择,而这远远超出了我的理解。

至于任务的其余部分:ComboBox1 包含字符串值“Red、Blue、Black”,ComboBox2 包含数字“0、1、2”,命令按钮应执行此操作:按钮本身只有在列表框中选择了任何内容时才处于活动状态。如果通过,它应该检查 ComboBox1 中选择了哪种颜色以及 ComboBox2 中的数字是什么。然后它应该检查 Word 中的文本以查找所选字母,并为列表框中包含所选字符数量的每个单词着色。

英语不是我的母语,所以这里有一个例子:

This is a test sentence.

Listbox char selected: e
ComboBox1: Red
ComboBox2: 1
The result should be the "test" word being red.

ComboBox2: 2
The result should be the "sentence" word being red.

ComboBox2: 0
The result should be the "This" "is" "a" words being red.

我的考试在下周,我真的很困惑,所以如果有人能给我最简单(尽可能最短)的代码,我会非常感激,这会对我有很大帮助。提前谢谢!

以下是我目前所写的内容:

Private Sub UserForm_Initalize()

With UserForm1.ComboBox1
.Additem "Red"
.Additem "Blue"
.Additem "Black"
End With

With UserForm1.Combobox2
.Additem "0"
.Additem "1"
.Additem "2"
End With

For i = 1 To ActiveDocument.Characters.Count
letter = ActiveDocument.Characters(i)
If letter > "Z" Then
ListBox1.Additem (Trim(letter))
db = db + 1
End If
Next

'Ascending order
ReDim temp(ListBox1.ListCount)
For r = 1 To ListBox1.ListCount
ListBox1.ListIndex = r - 1
temp(r) = ListBox1.Text
Next r

相关内容