#excel #vba
#excel #vba
Вопрос:
Я хотел бы изменить цвет двух ячеек (C3: C4) на красный при каждом открытии моей книги.
Код, который я пробовал, находится в моем событии Workbook_Open, но я получаю ошибку, определяемую приложением или объектом. Вот код:
Private Sub Workbook_Open()
Worksheets("Balance Sheet").Range("C3:C4").Interior.Color = vbRed
End Sub
Мой синтаксис неправильный или это скорее то, что это невозможно сделать во время workbook_open ? И как я могу это исправить?
Ответ №1:
Убедитесь, что ваш рабочий лист называется «Балансовый отчет». Любая опечатка приведет к тому, что Excel не найдет и вернет ошибку.
Комментарии:
1. Спасибо, это была одна из первых вещей, которые я проверил, там определенно нет опечаток.
2. В качестве альтернативы можно переименовать названия листов, чтобы можно было работать с wsBalanceSheet. Диапазон … вместо таблицы1. Диапазон или рабочие листы («Балансовый отчет»)…
Ответ №2:
Как вы написали, это не опечатка. Поэтому, пожалуйста, проверьте, включены ли макросы в файле Excel. В конфигурации по умолчанию макросы заблокированы, и поэтому ничего не происходит. Ваш код работает…
Комментарии:
1. Макросы включены, у меня есть некоторый код в событии SelectionChange, который работает нормально.
2. Это странно. Я даже протестировал его, и он работает так, как ожидалось… Возможно, попробуйте использовать название рабочего листа вместо рабочих листов («Балансовый отчет»).
3. Спасибо Стефану. В моем обозревателе проектов лист помечен как Лист1 (балансовый отчет). Буду ли я использовать
4. Да, просто попробуйте Лист1. Диапазон. Вы можете переименовать это в окне свойств, просто используйте более понятное имя.
Ответ №3:
Похоже, я получал сообщение об ошибке, потому что пытался отредактировать заблокированный лист. Добавлены строки для разблокировки и блокировки, и все работает нормально.
Немного неловко, но урок усвоен для следующего раза.