EXCEL VBA:Userform代码,重复代码改进

Eli*_*ias 0 excel vba combobox class userform

我是否有更有效的方法来编写此用户表单代码?

Private Sub Userform_Initialize()

'do stuff

    With Item1_DropDown
        .AddItem "Monday"
        .AddItem "Tuesday"
        .AddItem "Wednesday"
    End With

    With Item2_DropDown
        .AddItem "Monday"
        .AddItem "Tuesday"
        .AddItem "Wednesday"
    End With

    With Item3_DropDown
        .AddItem "Monday"
        .AddItem "Tuesday"
        .AddItem "Wednesday"
    End With

'and so on, and so on. (I have about fifty of these 'With/End With' blocks)

End Sub
Run Code Online (Sandbox Code Playgroud)

基本上,我希望能够停止写这么多'With/End With'块.现在,我在四个类似构造的用户表单中有这种类型的代码.它占用了太多的文本空间,似乎是一种浪费.有一个更好的方法吗?

请知道我从未写过课程模块.所以,如果解决方案需要它,我将需要被其中的宝宝所吸引.

谢谢,

埃利亚斯

Dav*_*ens 5

使用子例程划分代码:)

假设您的下拉列表是ComboBox表单控件:

Private Sub Userform_Initialize()

    PopulateDropDown Item1_DropDown
    PopulateDropDown Item2_DropDown
    PopulateDropDown Item3_DropDown

End Sub

Sub PopulateDropDown(cb as MSForms.ComboBox)

    With cb
        .AddItem "Monday"
        .AddItem "Tuesday"
        .AddItem "Wednesday"
    End With

End Sub
Run Code Online (Sandbox Code Playgroud)