Независимо от того, что вы используете безразмерные переменные, я бы сказал, что проблема в том, что вы не ссылаетесь на элементы управления в CalCharge
.
Попробуйте использовать это:
Private Sub before_1_AfterUpdate()
Call CalCharge(1)
End Sub
Private Sub before_2_AfterUpdate()
Call CalCharge(2)
End Sub
Private Sub CalCharge(ByVal index As Long)
Me("charge_" & index).Value = Me("before_" & index).Value - Me("after_" & index).Value
End Sub
Я немного изменил структуру: CalCharge
теперь ожидает числовой параметр, определяющий «набор» элементов управления, которые будут использоваться индексом.
Ваши процедуры событий before_1_AfterUpdate()
и before_2_AfterUpdate()
сейчаспросто вызовите эту новую CalCharge
процедуру, указав индекс.
CalCharge
теперь ссылается на элементы управления, сначала создавая имена элементов управления.
Me
- это ссылка на текущий экземпляр объекта,Ваша форма, где текущий код.