1

У меня есть два файла Excel. Каждый имеет все данные, которые вводятся несколькими людьми периодически в течение дня. Второй получает данные из первого файла, а затем создается сводная диаграмма. Если оба пользователя открыты одним пользователем, сводная таблица обновляется автоматически. Если у одного человека есть открытые данные, а у другого - одна открытая сводная таблица, то обновления сводной диаграммы не происходит. Я понимаю, что данные должны быть сохранены, а затем второй с сводной таблицей должен быть обновлен .. Какой самый быстрый и простой способ сделать это ..

1 ответ1

0

Существуют ограничения на использование 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 в качестве базы данных - компромисс с самого начала.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .