У меня есть два файла Excel. Каждый имеет все данные, которые вводятся несколькими людьми периодически в течение дня. Второй получает данные из первого файла, а затем создается сводная диаграмма. Если оба пользователя открыты одним пользователем, сводная таблица обновляется автоматически. Если у одного человека есть открытые данные, а у другого - одна открытая сводная таблица, то обновления сводной диаграммы не происходит. Я понимаю, что данные должны быть сохранены, а затем второй с сводной таблицей должен быть обновлен .. Какой самый быстрый и простой способ сделать это ..
1 ответ
Существуют ограничения на использование 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 в качестве базы данных - компромисс с самого начала.