gpt4 book ai didi

vba - 如何为总共 22 个文本框中的 20 个文本框制作一个代码,而不是重复 20 次

转载 作者:行者123 更新时间:2023-12-03 02:25:42 25 4
gpt4 key购买 nike

我有一组 22 个文本框。前 20 个是 1 到 10 之间的数字,textbox21 和 textbox22 是每组 10 个数字的总和。我对 textbox1 到 textbox20 使用相同的代码,但如何才能使这个更容易?

下面您可以看到我为这些文本框之一提供的代码。

Private Sub TextBox1_Change()
korps(1) = 0
korps1
If TextBox1.Value = "" Then
TextBox1.SetFocus
Exit Sub
End If
If Not IsNumeric(TextBox1.Value) Then
MsgBox "Sorry, only numbers allowed"
TextBox1.Value = ""
Exit Sub
End If
If TextBox1.Value = 0 Then TextBox1.Value = 10
korps(1) = TextBox1.Value
korps1
End Sub

最佳答案

如果您点击我的评论中的链接,您可以创建一个名为 txtBox 和以下代码的类

Option Explicit

Private WithEvents mTextBox As MSForms.Textbox

Property Set Box(nBox As MSForms.Textbox)
Set mTextBox = nBox
End Property

Private Sub mTextBox_Change()

If mTextBox.Value = "" Then
mTextBox.SetFocus
Exit Sub
End If
If Not IsNumeric(mTextBox.Value) Then
MsgBox "Sorry, only numbers allowed"
mTextBox.Value = ""
Exit Sub
End If
If mTextBox.Value = 0 Then mTextBox.Value = 10

End Sub

在表单中,您需要类似于以下代码的代码

Option Explicit

Dim colTxtBoxes As Collection

Private Sub UserForm_Initialize()

Dim m_txtBox As txtBox
Dim ctl As MSForms.Control

Set colTxtBoxes = New Collection

For Each ctl In Me.Controls

If ctl.Name = "TextBox21" Or ctl.Name = "TextBox22" Then
Else
If TypeName(ctl) = "TextBox" Then
Set m_txtBox = New txtBox
Set m_txtBox.Box = ctl
colTxtBoxes.Add m_txtBox
End If
End If

Next ctl

End Sub

关于vba - 如何为总共 22 个文本框中的 20 个文本框制作一个代码,而不是重复 20 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48044889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com