изменение цвета ячейки при открытии книги

#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. В конфигурации по умолчанию макросы заблокированы, и поэтому ничего не происходит. Ваш код работает…

https://support.office.com/en-us/article/Enable-or-disable-macros-in-Office-files-12b036fd-d140-4e74-b45e-16fed1a7e5c6

Комментарии:

1. Макросы включены, у меня есть некоторый код в событии SelectionChange, который работает нормально.

2. Это странно. Я даже протестировал его, и он работает так, как ожидалось… Возможно, попробуйте использовать название рабочего листа вместо рабочих листов («Балансовый отчет»).

3. Спасибо Стефану. В моем обозревателе проектов лист помечен как Лист1 (балансовый отчет). Буду ли я использовать

4. Да, просто попробуйте Лист1. Диапазон. Вы можете переименовать это в окне свойств, просто используйте более понятное имя.

Ответ №3:

Похоже, я получал сообщение об ошибке, потому что пытался отредактировать заблокированный лист. Добавлены строки для разблокировки и блокировки, и все работает нормально.

Немного неловко, но урок усвоен для следующего раза.