Любая идея, как уменьшить этот код? Этот код, как он не работает на VBA Как сделать здесь дополнительные процедуры?Процедура слишком большая excel vba
Private Sub Worksheet_Change(ByVal Target As Range)
For J = 17 To 19
Select Case Target.Address
Case "$J$17"
If Not Intersect(Target, Range("J17:J19")) Is Nothing Then
Target.Offset(0, 1) = Date
End If
Case "$J$18"
If Not Intersect(Target, Range("J18:J18")) Is Nothing Then
Target.Offset(0, 1) = Date
End If
Case "$J$19"
If Not Intersect(Target, Range("J19:J19")) Is Nothing Then
Target.Offset(0, 1) = Date
End If
End Select
Next
другие для
For N = 17 To 19
Select Case Target.Address
Case "$N$17"
If Not Intersect(Target, Range("N17:N19")) Is Nothing Then
Target.Offset(0, 1) = Date
End If
Case "$N$18"
If Not Intersect(Target, Range("N18:N18")) Is Nothing Then
Target.Offset(0, 1) = Date
End If
Case "$N$19"
If Not Intersect(Target, Range("N19:N19")) Is Nothing Then
Target.Offset(0, 1) = Date
End If
End Select
Next
других ДЛЯ
For R = 17 To 19
Select Case Target.Address
Case "$R$17"
If Not Intersect(Target, Range("R17:R19")) Is Nothing Then
Target.Offset(0, 1) = Date
End If
Case "$R$18"
If Not Intersect(Target, Range("R18:R18")) Is Nothing Then
Target.Offset(0, 1) = Date
End If
Case "$R$19"
If Not Intersect(Target, Range("R19:R19")) Is Nothing Then
Target.Offset(0, 1) = Date
End If
End Select
Next
других ДЛЯ
For V = 17 To 19
Select Case Target.Address
Case "$V$17"
If Not Intersect(Target, Range("V17:V19")) Is Nothing Then
Target.Offset(0, 1) = Date
End If
Case "$V$18"
If Not Intersect(Target, Range("V18:V18")) Is Nothing Then
Target.Offset(0, 1) = Date
End If
Case "$V$19"
If Not Intersect(Target, Range("V19:V19")) Is Nothing Then
Target.Offset(0, 1) = Date
End If
End Select
Next
другого При Z = 17 К 19 Select Case Тарга et.Address
Case "$Z$17"
If Not Intersect(Target, Range("Z17:Z19")) Is Nothing Then
Target.Offset(0, 1) = Date
End If
Case "$Z$18"
If Not Intersect(Target, Range("Z18:Z18")) Is Nothing Then
Target.Offset(0, 1) = Date
End If
Case "$Z$19"
If Not Intersect(Target, Range("Z19:Z19")) Is Nothing Then
Target.Offset(0, 1) = Date
End If
End Select
Next
И так далее
For AH = 16 To 16
Select Case Target.Address
Case "$AH$16"
If Not Intersect(Target, Range("AH16:AJ16")) Is Nothing Then
Target.Offset(2, 0) = Date
End If
End Select
Next
End Sub
Есть ± 160 Для
Это VBA говорит вам думать по-другому. –
Ваши петли, похоже, не имеют никакой цели? –
Петли только для проверки 3 строки каждый раз. Строки, которые включены, содержат текстовую информацию. Тем не менее, я попробую (позже) изменить этот макет, чтобы уменьшить циклы. – gatuso