Я нашел решение своей проблемы. При создании сводных таблиц я также добавляю соединения, поскольку мне нужно отобразить количество уникальных записей в сводной таблице:
ActiveWorkbook.Connections.Add2 "WorksheetConnection_" & inputDataArea, "", _
"WORKSHEET;" & ActiveWorkbook.Path & "\[" & ActiveWorkbook.name & "]" _
& inputSht.name, inputDataArea, 7, True, False
Где inputDataArea
- строка с диапазоном, используемым для сводной таблицы. Моя проблема заключалась в том, что я не удалял эти соединения при удалении сводной таблицы. Поэтому при каждом выполнении макроса добавлялось новое соединение.
Я добавил этот фрагмент кода, чтобы также удалить все ненужные соединения после удаления сводной таблицы:
Dim connection As Object
For Each connection In ActiveWorkbook.Connections
If connection.name <> "ThisWorkbookDataModel" Then connection.Delete
Next connection
Файл по-прежнему большой, но управляемый, и, самое главное, он больше не растет.
Спасибо Pᴇʜ за предложение удалить сводные кэши и за указание на то, что они удаляются вместе с соединениями.