2012-01-10 5 views
-1

Это следует из аналогичного previous question с вопросом о выборе диапазона строк. Следующим является то, что я выбрал несколько столбцов, используя аналогичный синтаксис.Выбор диапазона столбцов в VBA

With Sheets("Sheet1") 
    Union(.Columns(2), .Columns(3), Columns(4), _ 
    .Columns(5), .Columns(6)).ColumnWidth = 30 
    .Columns(4).EntireColumn.Hidden = True 

Это возвращает:

Время работы Ошибка 9: индекс вне диапазона.

Как вы можете видеть, я только пытаюсь выбрать и скрыть столбики B-> F в листе 1. Любая помощь очень ценится.

+1

Это не запрос о разъяснении, а приглашение для людей сказать, почему я ошибаюсь. Мне нравится функциональность клавиатуры, которая позволяет мне выбирать различные столбцы и делать то же самое со всеми из них. Но я никогда не находил ситуацию с VBA, для которой я думал, что это уместно. Для этого требования я бы использовал: 'Для каждого ColCrnt In Array (2, 3, 4, 5, 6)' '.Columns (ColCrnt) .ColumnWidth = 30'' Next'. Я считаю, что это легче ввести правильно и проще понять, когда я вернусь к нему через 6 месяцев. Я ошибаюсь? Есть ли простой ответ или это должно быть перенесено в комнату чата? –

+0

@Tony Я бы предпочел использовать: «Диапазон (« B1: F1 »). EntireColumn.Hidden = True' – Reafidy

+0

Или для прерывистых диапазонов:' Диапазон («B1: F1, J1, K1: Z1»). EntireColumn.Hidden = True' – Reafidy

ответ

1

Вам не хватает имени. " в колонках (4)

+0

Вы правы! это было довольно глупо: / – heavyarms