1

У меня есть две таблицы, и я хочу, чтобы вторая таблица обновлялась, как только человек меняет первую таблицу. Я могу сделать это с помощью простого оператора if, но он не будет обновляться, пока человек, работающий с первым листом, не закроет и не откроет его снова.

Возможно ли сделать это автоматически?

2 ответа2

3

Из комментария к удаленному ответу я вижу, что таблицы, которые нужно обновить, находятся на других компьютерах. Это обновление, по моему мнению, невозможно, если только не написать макрос для удаленных электронных таблиц, который регулярно проверяет дату изменения в исходной электронной таблице и обновляет себя при необходимости. Документ в этом случае должен быть в общедоступном сетевом ресурсе, и работа далеко не проста.

Другим вариантом, если все пользователи имеют доступ к Интернету, является использование электронной таблицы для совместной работы только на одной таблице. Существуют различные онлайн-продукты, даже бесплатные, которые могут служить этой цели.

Вы должны предоставить нам более подробную информацию о вашей среде и о том, что вы хотите или возможно в ней.

1

Вы можете установить макрос worksheet_change для первой электронной таблицы, который обновит вторую электронную таблицу. Код будет выглядеть примерно так:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim wbk2 As Workbook, wbk1 As Workbook, sht1 As Worksheet, sht2 As Worksheet

Set wbk1 = ActiveWorkbook
Set sht1 = ActiveSheet

on error resume next 
set wkb2=workbooks("myfile.xlsx")
if err<>0 then
    err.clear
    Set wbk2 = Workbooks.Open("\\remotecomputer\folder\myfile.xlsx")
end if
on error goto 0

Set sht2 = wbk2.Sheets("mySheet2")

sht2.Cells(1, 1) = "I have updated range " & Target.Address & " in sheet " & sht1.Name & " to value " & Target.Value

wbk2.Close True

End Sub

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