Разрешает ли функция get_Range диапазоны за пределами текущего листа? - PullRequest
0 голосов
/ 29 мая 2018

Мне было интересно, сталкивался ли кто-то с этим раньше, предположим, у нас есть следующий фрагмент кода:

Excel.Range vl_range = (Excel.Range)((Excel.Worksheet)Application.ActiveSheet).get_Range("A1");

Это безопасно возвращает диапазон A1.Однако, если мы введем строку "'new sheet'! $ C $ 1", то она выдаст ошибку HRESULT.

Но это можно решить с помощью следующего фрагмента кода:

Excel.Range vl_range = (Excel.Range)(Application.get_Range("'new sheet'!$C$1"));

Это похоже на работу.Теперь мне было интересно, если я введу «А1» только в последней строке кода, будет ли он автоматически предполагать, что я имею в виду активный лист?

Может кто-нибудь объяснить мне, почему это выглядит по-другому?в VBA?Где я могу легко определить диапазоны, используя метод Range, даже если я нахожусь на листе?

Верен ли мой вывод или я где-то совершаю ужасную ошибку?

1 Ответ

0 голосов
/ 04 июня 2018

Для всех, кому интересно.Я проверил код, и если мы используем:

Excel.Range vl_range = (Excel.Range)(Application.get_Range("C1"));

Excel автоматически предполагает, что вы ссылаетесь на Activesheet.

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