Добрый вечер, Уважаемые. Вроде бы банальная задача и рассматривалась не раз. Но все, что находил по этой теме - или выделить цветом или вывести в отдельный столбец. Мне же нужно просто выделить Select'ом ячейки в таблице листа "Результат" если они совпадают с данными в столбце листа "Данные1" (или "Данные2" это уже потом, таких данных может быть много, это своеобразные условия для выделения). И вроде бы все просто, но как только выделяется найденная ячейка, выделение с предыдущей найденной убирается. Вот в чем собственно загвоздка. Мне же нужно, чтобы выделились все найденные. Как сделать - не пойму, подскажите, пожалуйста.
Добрый вечер, Уважаемые. Вроде бы банальная задача и рассматривалась не раз. Но все, что находил по этой теме - или выделить цветом или вывести в отдельный столбец. Мне же нужно просто выделить Select'ом ячейки в таблице листа "Результат" если они совпадают с данными в столбце листа "Данные1" (или "Данные2" это уже потом, таких данных может быть много, это своеобразные условия для выделения). И вроде бы все просто, но как только выделяется найденная ячейка, выделение с предыдущей найденной убирается. Вот в чем собственно загвоздка. Мне же нужно, чтобы выделились все найденные. Как сделать - не пойму, подскажите, пожалуйста.VictorM
Обычно ячейки не нужно выделять, чтобы с ними что-то сделать. Объясните, зачем Вам надо выделить несколько ячеек?
Что касается Вашего вопроса, то выделить можно с помощью Union. Собираете все ячейки, какие нужно выделить в одну переменную, затем с помощью этой переменной выделяете ячейки: [vba]
Код
Sub Выделить() Dim uni As Range Set uni = Range("A11") Set uni = Union(uni, Range("A13")) uni.Select End Sub
[/vba]
Обычно ячейки не нужно выделять, чтобы с ними что-то сделать. Объясните, зачем Вам надо выделить несколько ячеек?
Что касается Вашего вопроса, то выделить можно с помощью Union. Собираете все ячейки, какие нужно выделить в одну переменную, затем с помощью этой переменной выделяете ячейки: [vba]
Код
Sub Выделить() Dim uni As Range Set uni = Range("A11") Set uni = Union(uni, Range("A13")) uni.Select End Sub
Да, согласен, обычно не нужно. Но в данном случае нужно именно выделить. Затем, по условию Select будет выполняться дальнейший код, который уже написан под дугие условия. Спасибо за код. Буду пробовать
Да, согласен, обычно не нужно. Но в данном случае нужно именно выделить. Затем, по условию Select будет выполняться дальнейший код, который уже написан под дугие условия. Спасибо за код. Буду пробоватьVictorM
Сообщение отредактировал VictorM - Воскресенье, 19.03.2017, 20:59
VictorM, почему Select зло? Просто смысла нет использовать Select. Select вставляет макрорекордер, а программисты VBA никогда не используют Select, т.к. в этом просто-напросто нет смысла. Select используют люди, которые только только начали работать с макросами и получают код из макрорекордера, не переделывая его.
VictorM, почему Select зло? Просто смысла нет использовать Select. Select вставляет макрорекордер, а программисты VBA никогда не используют Select, т.к. в этом просто-напросто нет смысла. Select используют люди, которые только только начали работать с макросами и получают код из макрорекордера, не переделывая его.Karataev
Сообщение отредактировал Karataev - Понедельник, 20.03.2017, 12:18
вот такой код мне и достался для переделки (допиливания) но получилось так, что его проще переделать а Select я давно не использую ибо "зло" (в коде) как и объединенные ячейки на листе
вот такой код мне и достался для переделки (допиливания) но получилось так, что его проще переделать а Select я давно не использую ибо "зло" (в коде) как и объединенные ячейки на листе VictorM
Select не зло, просто его нет смысла использовать. Здравого смысла нет, чтобы использовать Select. Естественно, что Select для каких-то задач нужен, в данном контексте не нужен.
Select не зло, просто его нет смысла использовать. Здравого смысла нет, чтобы использовать Select. Естественно, что Select для каких-то задач нужен, в данном контексте не нужен.Karataev
Сообщение отредактировал Karataev - Понедельник, 20.03.2017, 13:34