Procedure too large Как уменьшить данный код? - VBA
Формулировка задачи:
Добрый день!
Прошу помощи, как можно уменьшить код, можно использовать и подпроцедуры и все остальные прелести VBA.
Сам пробую, не получается.
Вот таких дней получается 31, и в каждом по 9 условий (изменений по двойному клику в ячейке) и все они находятся в одной процедуре. Получается очень длинный код и вылазит ошибка "Procedure too large".
Вот и вытекает вопрос - как можно уменьшить код?
Большая просьба, если можно, написать код.
Решение задачи: «Procedure too large Как уменьшить данный код?»
textual
Листинг программы
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) ActiveSheet.Unprotect Call DaysUniv(Target, "$Z$16:$Z$24", "AA17", Cancel) Call DaysUniv(Target, "$M$16:$M$24", "N17", Cancel) ActiveSheet.Protect End Sub Private Sub DaysUniv(ByVal Target As Range, ByVal strAddrRange As String, ByVal strAddrCell As String, ByRef Cancel As Boolean) Dim rngObj As Range If Intersect(Target, Range(strAddrRange)) Is Nothing Then Exit Sub Else Set rngObj = Intersect(Target, Range(strAddrRange)) Cancel = True With Target.Font .Name = "Marlett" .Size = 11 End With If Target = vbNullString Then Target = "a" rngObj.Offset(0, -4).Resize(1, 3).Interior.Color = 5287936 Range(strAddrCell) = Range(strAddrCell).Value + rngObj.Offset(0, -1).Value Else Target = vbNullString rngObj.Offset(0, -4).Resize(1, 3).Interior.Pattern = xlNone Range(strAddrCell) = Range(strAddrCell).Value - rngObj.Offset(0, -1).Value End If Set rngObj = Nothing End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д