У меня есть таблица, в которой есть текстовые поля ActiveX, связанные с определенными ячейками. Когда число в ячейках изменяется, число в текстовом поле также изменяется. Довольно просто.Попытка упростить пошаговый макрос в VBA
Я хотел, чтобы числа в этих текстовых поля были красными, когда число больше нуля и белого, когда число равно нулю. Я выбрал белый цвет так, чтобы нули не отображались на печатной странице. У меня есть очень простой макрос, который делает это:
Sub textbox_change()
Worksheets("PAGE01").E21.LinkedCell = "PAGE01!AB23"
If Worksheets("PAGE01").E21.Value > 0 Then
Worksheets("PAGE01").E21.ForeColor = RGB(255, 0, 0)
Else
Worksheets("PAGE01").E21.ForeColor = RGB(255, 255, 255)
End If
Worksheets("PAGE01").E22.LinkedCell = "PAGE01!AB24"
If Worksheets("PAGE01").E22.Value > 0 Then
Worksheets("PAGE01").E22.ForeColor = RGB(255, 0, 0)
Else
Worksheets("PAGE01").E22.ForeColor = RGB(255, 255, 255)
End If
End Sub
Как вы можете видеть, код для каждого текстового поля завершается один на один раз. Как я могу объединить их так, чтобы макрос сразу менял эти цвета, без необходимости иметь блок кода для каждого текстового поля?
Примечание: Я использовал только два текстовых поля в примере, но я хотел бы иметь до 48 из этих ящиков. Это было бы много избыточности, когда я был бы уверен, что есть намного более короткий способ позаботиться об этих неприятных изменениях цвета.
Можете ли вы помочь добрым людям? Очень ценится ...
Почему вы обновляя связанные ячейки для всех ваших флажков? Разве они уже не установлены? –
Они настроены на печать как два отдельных отчета. Одним из отчетов будет таблица, в которой отображаются только цифры, и один отчет будет печататься как визуальная панель с изображениями, чтобы визуально представлять, что означают цифры. –