всем доброго времени суток
у меня есть class module:
возможно ли создать публичную функцию внутри Class Module?
затем использовать ее внутри UserForm
использую следующий код внутри UserForm
можно ли добавить в этот код еще один цикл?
код у меня работал когда использовал в User Form 12 наименование товара
основная задача заключается в том что если пользователь меняет данные в UserForm, данные должны менятся внутри Excel
есть ли у вас какая-то идея по этому поводу
заранее спасибо за потраченное время
у меня есть class module:
Код |
---|
Option Explicit Public WithEvents eBx1 As MSForms.TextBox Public WithEvents eBx2 As MSForms.TextBox ... до Public WithEvents eBx50 As MSForms.TextBox Private Sub eBx1_Change() With Application .EnableEvents = False .ScreenUpdating = False End With If eBx1.Tag = "" Then Exit Sub Dim lc1 As Long, lc2 As Long, r As Integer, Str Str = Split(eBx1.Tag, ";") If UBound(Str) < 1 Then Exit Sub lc1 = val(Str(0)) lc2 = val(Str(1)) With Worksheets("updateEvent") If .Cells(5, 2).Value = .Cells(1, 1).Value Then .Cells(3, lc1).Value = Format(val(eBx1.Value) / 100, "#0%") Else .Cells(3, lc2).Value = Format(val(eBx1.Value) / 100, "#0%") End If End With With eBx1 If Not IsNumeric(.Text) And .Text <> "" Then .Text = Left(.Text, Len(.Text) - 1) .SelStart = Len(.Text) End If End With With Application .EnableEvents = True .ScreenUpdating = True End With End Sub Private Sub eBx2_Change() With Application .EnableEvents = False .ScreenUpdating = False End With If eBx2.Tag = "" Then Exit Sub Dim lc1 As Long, lc2 As Long, r As Integer, Str Str = Split(eBx2.Tag, ";") If UBound(Str) < 1 Then Exit Sub lc1 = val(Str(0)) lc2 = val(Str(1)) With Worksheets("updateEvent") If .Cells(5, 2).Value = .Cells(1, 1).Value Then .Cells(4, lc1).Value = Format(val(eBx2.Value) / 100, "#0%") Else .Cells(4, lc2).Value = Format(val(eBx2.Value) / 100, "#0%") End If End With With eBx2 If Not IsNumeric(.Text) And .Text <> "" Then .Text = Left(.Text, Len(.Text) - 1) .SelStart = Len(.Text) End If End With With Application .EnableEvents = True .ScreenUpdating = True End With End Sub ... до Private Sub eBx50_Change() |
возможно ли создать публичную функцию внутри Class Module?
затем использовать ее внутри UserForm
использую следующий код внутри UserForm
Код |
---|
'function for import data from eventsFC to sheet Dim eVal1() As New eventFC 'название Class Molude Dim eVal2() As New eventFC ... до Dim eVal50() As New eventFC Private Sub UserForm_Initialize() Application.EnableEvents = False Application.ScreenUpdating = False Dim c, r As Integer If Sheets("updateEvent").Cells(1, 2).Value = "New" Then Else ReDim eVal1(1 To 12) For c = 1 To 12 Set eVal1(c).eBx1 = eventsFC.frmEvent.Controls("txtBrand1_" & c) Next c ReDim eVal2(1 To 12) For c = 1 To 12 Set eVal2(c).eBx2 = eventsFC.frmEvent.Controls("txtBrand2_" & c) Next c ... до ReDim eVal50(1 To 12) For c = 1 To 12 Set eVal50(c).eBx50 = eventsFC.frmEvent.Controls("txtBrand50_" & c) Next c End If Application.EnableEvents = True Application.ScreenUpdating = True End Sub |
код у меня работал когда использовал в User Form 12 наименование товара
основная задача заключается в том что если пользователь меняет данные в UserForm, данные должны менятся внутри Excel
есть ли у вас какая-то идея по этому поводу
заранее спасибо за потраченное время