( Вход | Регистрация | Поиск )

Нужна срочная помощь в оптимизации макроса Excel, Visual Basic
Дата обновления: 25.11.2019 - 20:03, перейти к новому сообщению

·Vladislaw
Группа: Пользователи

Сообщений: 2
Здравствуйте форумчане! Нужна оперативная помощь сведущих в программировании макросов Excel. Суть проблемы в следующем:
Имеются два ряда колонок с различными показателями (норматив/факт), в третьей колонке через формулу ЕСЛИ проверяется соответствие этих показателей друг другу (если совпадают - ИСТИНА и т.д.). Я написал макрос, который при несоответствии показателей (в третьей колонке значение в ячейке = ЛОЖЬ), выделяет всю строку другим цветом для наглядности. На данный момент макрос выглядит следующим образом:

If Range(“C1”)=“True” Then Rows(“1:1”).Select
With Selection.Interior
.Pattern=x1None
.TintAndShade=0
.PatternTintAndShade=0
End With
If Range(“C1”)=“False” Then Rows(“1:1”).Select
With Selection.Interior
.Pattern=x1Solid
.PatternColorIndex=x1Automatic
.Color=65535
.TintAndShade=0
.PatternTintAndShade=0
End With

И так далее. Проблема в следующем - строк для проверки около тысячи и вписать каждую в макрос будет ну очень долгим делом. Как сделать так, чтобы макрос распространился на все заполненные ячейки? Уверен, что это элементарно, но никак не могу дойти до этого сам. Спасибо заранее


Ответов(1 - 5)

·Henry723
Группа: СуперМодераторы

Сообщений: 29.347
Рекомендую посмотреть здесь




·Mendel Maranz
Группа: Пользователи

Сообщений: 51
А нафига писать макросы, если можно просто задать условное форматирование строки по содержимому ячейки и растянуть его на весь диапазон?


·kostya-chist
Группа: Модераторы

Сообщений: 1.211
Во-первых: обработка макросом 1000 ячеек - дело нескольких секунд, обрабока данных ячеек в цикле.
Во-вторых: ваше хотелка уже встроена в ексел и называется условное форматирование, ничего растягивать не надо, просто выделить весь столбец и применить к нему нужное форматирование.


·grts
Группа: Пользователи

Сообщений: 446
Цитата | Quote(Vladislaw @ 24.11.2019 - 14:22)
Здравствуйте форумчане! Нужна оперативная помощь сведущих в программировании макросов Excel.



Тебе сюда:
_http: //www.excelworld.ru

Оперативней не бывает. Проверено.



·Vladislaw
Группа: Пользователи

Сообщений: 2
Спасибо всем большое! Проблема решилась сначала при помощи макроса, а потом я узнал ещё и про условное форматирование ) не знал, что можно заливку растянуть на всю строку. Век живи век учись.

 

task