Добрый день! А я снова к Вам с вопросами. Честно искала решение, но не нашла. Помогите, пожалуйста!
На userform очень много textbox`ов (57 штук), все они, кроме восьми, предназначены для ввода сумм и обработчики событий (например, KeyPress) для этих textbox`ов одинаковые.
Очень не хочется писать руками 57-8 одинаковых Sub, а хочется решить вопрос автоматически.
Быть может, в момент инициализации формы вставить циклы как-то так (правда, не работает):
Dim kol As Integer
For kol = 19 To 54 Step 5
With TempForm.CodeModule
Line = .CountOfLines
.InsertLines Line + 1, "Sub " & List_SMB.Controls("TextBox" & kol) & "_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)"
.InsertLines Line + 2, "If (KeyAscii < 48 Or KeyAscii > 57) And (KeyAscii <> 44 And KeyAscii <> 46) Then KeyAscii = 0"
.InsertLines Line + 3, "End Sub"
End With
Next kol
Подскажите, пожалуйста, решение!
На userform очень много textbox`ов (57 штук), все они, кроме восьми, предназначены для ввода сумм и обработчики событий (например, KeyPress) для этих textbox`ов одинаковые.
Очень не хочется писать руками 57-8 одинаковых Sub, а хочется решить вопрос автоматически.
Быть может, в момент инициализации формы вставить циклы как-то так (правда, не работает):
Dim kol As Integer
For kol = 19 To 54 Step 5
With TempForm.CodeModule
Line = .CountOfLines
.InsertLines Line + 1, "Sub " & List_SMB.Controls("TextBox" & kol) & "_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)"
.InsertLines Line + 2, "If (KeyAscii < 48 Or KeyAscii > 57) And (KeyAscii <> 44 And KeyAscii <> 46) Then KeyAscii = 0"
.InsertLines Line + 3, "End Sub"
End With
Next kol
Подскажите, пожалуйста, решение!