Можно ли вернуть список всех диапазонов из всех листов в книге Excel 2002? - PullRequest
0 голосов
/ 17 апреля 2010

Я хочу извлечь "специальные" данные из книги Excel 2002 (требование клиента не может быть изменено) и содержащихся в ней таблиц Я классифицировал диапазоны в этой «специальной» категории данных. Я хотел бы получить список всех диапазонов, в идеале, всех рабочих листов в рабочей книге. Интересующие меня атрибуты - это имя диапазона и адрес диапазона. Некоторое время я гуглил и не нашел ничего подходящего.

Я предполагал, что API Excel 2002 предоставит что-то вроде этого:

ApplicationClass app = new ApplicationClass();
Workbook workbook = app.Workbooks.Open(@"c:\file.xls", ...);
Worksheet worksheet = workbook.Worksheets["sheet1"] as Worksheet;
Range[] ranges = worksheet.GetAllRanges();

или что-то подобное. Однако я грустно ошибаюсь.

Возможно ли это в Excel 2002?

1 Ответ

0 голосов
/ 17 апреля 2010

Если вы ищете все именованные диапазоны, вам следует обратиться к коллекции Workbook.Names. Каждое имя в коллекции имен имеет свойство RefersTo, которое дает ссылку на формулу или диапазон, на которую ссылается имя. (Но имейте в виду, что имя может быть формулой, а не ссылкой на диапазон)
DIM ONNM как имя

за каждое oNM в ActiveWorkbook.Names
debug.print oNM.Refersto
в следующий день

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