2013-08-29 2 views
1

В основном мне нужно выбрать определенные ячейки на листе excel в vba. Например, код должен иметь возможность выбирать a5, a10, a15. Я не хочу, чтобы между ними были ячейки, только те, которые я перечислял. Есть ли конкретная функция, которая будет делать это? Кажется, что .Range может принимать только начальную ячейку и конечную ячейку.Как выбрать определенные ячейки в VBA?

ответ

5

Вы бы использовать это: Range("A5,A10,A15").Select

Чтобы добавить дополнительные ячейки, просто использовать больше запятые.

В качестве альтернативы вы можете использовать Union method для объединения объектов диапазона в один объект Range.

Обратите внимание, что, как правило, не рекомендуется выбирать ячейки в VBA, поскольку почти все можно сделать без выбора. Это частая ошибка, сделанная людьми, новыми для VBA из-за сгенерированных макросов (Record Macro), воссоздающих то, что вы делаете, а не результат, который вы хотите.

+1

Привет, спасибо за быстрый ответ. Кажется, мне нравится делать это правильно. Проблема, с которой я сталкиваюсь, заключается в том, что когда я объединяю несколько ячеек в переменную String (mycells) и использую ее в Range (mycells). Выберите, макрос дает мне ошибку, и я считаю, что это связано с тем, что String может обрабатывать всего 255 символов. – gvar

+2

Это правильно. В этом случае используйте Union. Например, вы можете сделать что-то вроде этого: «Union (Range (_ « A23, A29, A34, B35, C38, C33, B32, B31, C31, K36, I31, L25, J26, H28, G35, E38, F32, F27, F21, C17, C15, C10, A11, F18, E19, I19, J19, J15, I13, M13, A1, A3 "), Диапазон (« A5, A7, B6, B5, C5, C4, C7 , С13, В13, В18, С21, Н22, Н11, L16, Е30, С28, С24, Е25, Е15, Е10, F14, H16, J11, Н5, О6, F6, Е3, D8, А13, А19")). Select' –

+1

@ DanielCook Если какое-то поведение не изменилось, о котором я не знаю, метод 'Union' был доступен с момента появления Excel VBA? –

Смежные вопросы