Я не уверен, что понимаю «и затем манипулирую им в Excel для создания отчета» именно так, как я могу представить множество разнородных способов создания отчетов в Excel, но у меня есть предложение, которое может поразить вас (Я бы оставил комментарий с уточняющими вопросами, но, увы, моя репутация все еще слишком мала!). Если вам нужны пояснения / пример кода, дайте мне знать, и я буду рад вам помочь.
Поскольку у вас уже есть именованные диапазоны, вы можете использовать queryTable / listObject, который фактически указывает на другой лист в той же книге. При этом используется DSN для файлов Excel (через ODBC, и он должен быть на всех рабочих станциях с Excel), и я несколько раз использовал этот прием для работы с переменными данными, о которых мне нужно было сообщать. Как это сделать, зависит от используемой версии Excel. Я сейчас запускаю 2007, поэтому для этого нужно указать «Вкладка данных / Из других источников / Из запроса Microsoft», выбрать «Файлы Excel», перейти к своему файлу (возможно, вам придется сначала сохранить, так как это тот же, в котором вы находитесь) и выберите именованный диапазон, который вы ищете. Если вы знакомы с MS Query, это должно быть прямо оттуда.
Теперь DSN для новой таблицы запросов будет иметь жестко запрограммированную ссылку на книгу в строке подключения. Чтобы обновить это, вам понадобится немного кода VBA в событии workbook_open. Это должно выглядеть примерно так:
Sub Workbook_Open()
Dim MyLocation as String
MyLocation = ThisWorkbook.Path & "\" ThisWorkbook.Name
Sheet1.ListObjects(1).queryTable.ConnectionString = _
"ODBC;DSN=Excel Files;DBQ=" & _
MyLocation & ";DriverId=1046;MaxBufferSize=2048;PageTimeout=5;"
End Sub
Очевидно, что с несколькими запросами вам нужно будет выполнить несколько For Eaching, но в этом суть. Дайте мне знать, если это то, что вы ищете, и я могу дать вам более подробное объяснение преимуществ, подхода, примеров кода для создания запросов (вместо того, чтобы делать их вручную с помощью MSQuery), различные направления для других версий и т. д.
Примечание. Этот подход также будет работать с сводной таблицей, но я считаю их громоздкими для простых наборов данных, таких как данные, которые вы описываете.