У меня есть некоторый внутренний код, который создает MsgBox в зависимости от содержимого редактируемого пользователем пользовательского листа («iButtons»). Приведенный ниже код работает нормально и довольно быстро, но я осознаю тот факт, что по мере роста листа «iButtons» мне потребуется со временем излишне управлять этим кодом.
Могу ли я легко записать это в цикл, который быстро сканирует лист iButtons для всех строк на листе, который имеет содержимое (до тех пор, пока не будет достигнута пустая строка)? Будет ли цикл достаточно быстрым, чтобы пассивно работать в фоновом режиме, или отклик всплывающего окна MsgBox будет слишком медленным, учитывая объем кода, который нужно будет запустить?
Public Sub iButtons(ByVal Target As Range)
'Pulls content from the iButtons sheet
If (ActiveSheet.Name = Worksheets("iButtons").Range("A4")) And Not Intersect(Target, Target.Parent.Range(Worksheets("iButtons").Range("B4"))) Is Nothing Then
MsgBox Worksheets("iButtons").Range("D4"), vbInformation, Worksheets("iButtons").Range("C4")
ActiveSheet.Range("A1").Select
End If
If (ActiveSheet.Name = Worksheets("iButtons").Range("A5")) And Not Intersect(Target, Target.Parent.Range(Worksheets("iButtons").Range("B5"))) Is Nothing Then
MsgBox Worksheets("iButtons").Range("D5"), vbInformation, Worksheets("iButtons").Range("C5")
ActiveSheet.Range("A1").Select
End If
If (ActiveSheet.Name = Worksheets("iButtons").Range("A6")) And Not Intersect(Target, Target.Parent.Range(Worksheets("iButtons").Range("B6"))) Is Nothing Then
MsgBox Worksheets("iButtons").Range("D6"), vbInformation, Worksheets("iButtons").Range("C6")
ActiveSheet.Range("A1").Select
End If
End Sub
Спасибо!