Excel - Макро-подсветка, если разница> или <2

  • вопрос
  • Решение
  • Заметка

вопрос

Мне нужна помощь в написании макроса Accounting Excel, над которым я работаю. Похоже, что все работает нормально, за исключением одной части, с которой мне нужна помощь.

У меня есть 2 таблицы, отформатированные одинаковым образом, однако некоторая информация меняется с листа 1 на лист 2. Я хочу настроить макрос для проверки столбцов «J», «M», «P», «S», «V» и «Y» для каждой ячейки. Вот пример того, что мне нужно:

-Если (Worksheet1! M24-Worksheet2! M24) больше 20 или меньше -20, измените фон ячейки Worksheet1! M24 lavender

-Мне нужна формула для проверки, а не для перезаписи данных на любом листе.

Это означает, что если M24 на рабочем листе 1 равно 200, 00, а на рабочем листе 2 M24 - 275, 00, то M24 на рабочем листе 1 будет по-прежнему отображаться как 200, 00, но теперь оно будет выделено лавандой.

Любые идеи, как я могу это сделать? Я строю макросы в VBA, с которыми у меня очень мало опыта.

Решение

Ваш выбор столбцов J, M, N и т. Д., Что его столбец j + 3 - это М, а столбец М + 3 - это Р и т. Д.

Ваши фактические данные начинаются со строки 2, строка 1 является заголовком столбца

В данных нет пробела, по крайней мере, в столбце J

но вы написали, что если разница между ячейками двух листов eiteshr> 20 или меньше 20, она должна быть окрашена. Это означает, что только если это 20, он не окрашен. ЭТА ЛОГИКА ОК. Проверьте еще раз, пожалуйста

в этом предположении макрос приведен ниже. протестируйте его и оставьте комментарии.

Если есть ошибка или ошибка, ошибка должна быть четко объяснена. Если макрос останавливает строку, где он останавливается и появляется сообщение об ошибке.

второй макрос отмены удаляет окраску ;. Я использовал номер цвета в качестве r 3 для красного. Если вы настаиваете на лаванде, вам нужно узнать количество цветов, потому что я могу неправильно понять, что вы подразумеваете под лавандой. в пустой клетке

покрасьте клетку в лаванду. предположим, что ячейка E13, затем перейдите в окно vb editor и введите:

? Диапазон ( "e13"). interior.colorindex

и удерживайте курсор в конце этой строки и нажмите клавишу ввода, и вы получите номер цвета. используйте это в макросе.

Два макроса:

 Sub test () Dim col1 как целое число, col2 как целое число, col как целое число, rrow как целое число Dim lastrow как целое число col1 = диапазон ("J1"). Столбец col2 = диапазон ("Y1"). Столбец lastrow = рабочие листы ("sheet1 ") .Range (" J2 "). End (xlDown) .Row 'MsgBox lastrow Worksheets (" sheet1 "). Cells.Interior.ColorIndex = xlNone Для col = col1 Для col2 Шаг 3 Для rrow = 2 Для lastrow' MsgBox Cells (1, столбец) .Address 'MsgBox rrow If Worksheets ("sheet1"). Ячейки (rrow, col) - Рабочие листы ("sheet2"). Ячейки (rrow, col)> 20 Или _ Рабочие листы ("sheet2"). Ячейки (rrow, col) - Worksheets ("sheet2"). Ячейки (rrow, col) <20 Затем Worksheets ("sheet1"). Cells (rrow, col) .Interior.ColorIndex = 3 End If Next Next End Sub 

 Sub undo () Worksheets ("sheet1"). Cells.Interior.ColorIndex = xlNone End Sub 

Заметка

Спасибо venkat1926 за этот совет на форуме.

Предыдущая статья Следующая статья

Лучшие советы