Ошибка при выполнении кода VBA, когда открыта неверная вкладка Excel - PullRequest
0 голосов
/ 25 апреля 2018

В моем коде VBA используются две таблицы Excel.Он получает данные из одной (Tab1) и записывает результаты в другую вкладку (Tab2).Тем не менее, когда я запускаю код при открытой вкладке Tab2, VBA выдает мне сообщение «Ошибка приложения или объекта».Код работает найти, когда я нахожусь на Tab1.Ниже приведена строка кода, где он задыхается:

Set YE_last = Forecast.Range(Cells(YE_forecast.Row + 1, YE_forecast.Column + i - 1), Cells(YE_forecast.Row + 1, YE_forecast.Column + i - 1))

Можете ли вы помочь, пожалуйста!

1 Ответ

0 голосов
/ 25 апреля 2018

Cells без спецификатора объекта рабочего листа, неявно ссылается на то, чем является ActiveSheet (если вы находитесь в стандартном модуле кода).Если вы находитесь в модуле code-behind рабочего листа, то неквалифицированные вызовы Cells в основном выполняют Me.Cells, то есть они ссылаются на этот рабочий лист.

Решение заключается в квалификациивсе с объектом листа, с которым вы работаете:

Set YE_last = Forecast.Range(Forecast.Cells(YE_forecast.Row + 1, YE_forecast.Column + i - 1), Forecast.Cells(YE_forecast.Row + 1, YE_forecast.Column + i - 1))

A With блок может упростить это:

With Forecast
    Set YE_last = .Range(.Cells(YE_forecast.Row + 1, YE_forecast.Column + i - 1), .Cells(YE_forecast.Row + 1, YE_forecast.Column + i - 1))
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...