Это следует из аналогичного 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. Любая помощь очень ценится.
Это не запрос о разъяснении, а приглашение для людей сказать, почему я ошибаюсь. Мне нравится функциональность клавиатуры, которая позволяет мне выбирать различные столбцы и делать то же самое со всеми из них. Но я никогда не находил ситуацию с VBA, для которой я думал, что это уместно. Для этого требования я бы использовал: 'Для каждого ColCrnt In Array (2, 3, 4, 5, 6)' '.Columns (ColCrnt) .ColumnWidth = 30'' Next'. Я считаю, что это легче ввести правильно и проще понять, когда я вернусь к нему через 6 месяцев. Я ошибаюсь? Есть ли простой ответ или это должно быть перенесено в комнату чата? –
@Tony Я бы предпочел использовать: «Диапазон (« B1: F1 »). EntireColumn.Hidden = True' – Reafidy
Или для прерывистых диапазонов:' Диапазон («B1: F1, J1, K1: Z1»). EntireColumn.Hidden = True' – Reafidy