Существуют ограничения на использование Excel в качестве базы данных для нескольких пользователей, и ваш пример является одним из них. (см. также « один файл-Excel-файл-несколько-редактирование-пользователи-живые-обновления» )
В качестве решения проблемы я бы порекомендовал следующее:
1) в рабочей книге «данные» - некоторый код VBA для модуля рабочей таблицы для автоматического сохранения рабочей книги при записи новой «записи». Будет работать что-то вроде примера, но замените «C: C» на столбец, в котором вы хотите сохранить данные. Это просто так, он не сохраняет, когда заполнено каждое поле, только на одном из них.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("C:C")) Is Nothing Then End Sub
2) в сводной таблице и сводной таблице
a) Добавьте код VBA в ThisWorkbook
модуль, чтобы автоматически открыть книгу данных, как показано ниже:
Private Sub Workbook_Open() Workbooks.Open "C:\My Documents\Data_Workbook.xlsm" End Sub
б) установите автоматическое обновление при открытии, как показано на рисунке ниже. Очевидно, вам нужно будет открыть рабочую книгу «Данные», даже если она только в режиме только для чтения. (Очевидно, что вы могли бы написать некоторый код VBA для этого, но я попытался минимизировать это)
Это не элегантно, но опять же использование Excel в качестве базы данных - компромисс с самого начала.