Excel VBA 10按钮与几乎相同的代码

3phpmpom  于 2022-12-14  发布在  其他
关注(0)|答案(1)|浏览(173)

这只是为了让我的代码看起来更好。
我有一个10个按钮的用户表单,每个按钮激活相同的子,但输入不同。
我想知道是否有一种方法可以使代码更短更好。
这基本上就是我现在所拥有的:

Private Sub 10_Click()

info (10000)

End Sub

Private Sub 20_Click()

info (20000)

End Sub

Private Sub 30_Click()

info (30000)

End Sub

Private Sub 40_Click()

info (40000)

End Sub

Private Sub 50_Click()

info (50000)

End Sub

Private Sub 60_Click()

info (60000)

End Sub

Private Sub 70_Click()

info (70000)

End Sub

Private Sub 80_Click()

info (80000)

End Sub

Private Sub 90_Click()

info (90000)

End Sub

Private Sub 100_Click()

info  (100000)

End Sub
r7xajy2e

r7xajy2e1#

在不知道“信息”应该做什么的情况下提供帮助有点困难,但这里有一些东西可以让你开始。
将按钮重命名为“btn10”、“btn20”等。
在用户窗体中,使用此代码。(不需要单独的按钮代码。)

Private btnInfo() As New clsInfoButtons

Private Sub UserForm_Initialize()
    Dim lngButtonNumber As Long
    
    For lngButtonNumber = 1 To 10
    
        ReDim Preserve btnInfo(1 To lngButtonNumber)
    
        Set btnInfo(lngButtonNumber).btnInfoButtons = Me.Controls("btn" & (lngButtonNumber * 10))
    
    Next lngButtonNumber

End Sub

现在创建一个类模块并将其命名为“clsInfoButtons”。
在类模块中添加以下代码。

Public WithEvents btnInfoButtons As MSForms.CommandButton

Private Sub btnInfoButtons_Click()

    MsgBox Replace(btnInfoButtons.Name, "btn", vbNullString)

End Sub

正如您所知道的,您也可以使用类模块来创建标签、文本框等。它不仅减少了总体代码,还降低了出错的可能性,因为您可以为所有包含的控件编写相同的代码。

相关问题