Excel - сравнить два документа? - PullRequest
0 голосов
/ 29 апреля 2011

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

Book1.xls
   Sheet1
      A1: Hello!
      A2: Goodbye!

Book2.xls
   Sheet1
      A1: Hello!
      A2: Goodbye!

Теперь, если у меня есть связь между Book2 и Book1, все, что отредактировано в Book1, будет изменено в Book2, но не наоборот!

Спасибо !!

1 Ответ

1 голос
/ 30 апреля 2011

Один вопрос - если файлы предназначены для точных копий, зачем иметь 2 копии?

Возможный пример - использование события Workbook_SheetChange, чтобы любые изменения в рабочей книге обновляли другую рабочую книгу. Однако это действительно работает только при изменении значений, а не форматов и т. Д.

Например, 2 рабочих книги Book1.xlsm & Book2.xlsm, в Book1.xlsm в объекте THISWORKBOOK введите

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim MyObj As Object, strCopyto As String

 strCopyto = "C:\Users\osknows\Desktop\Book2.xlsm"

 Set MyObj = GetObject(strCopyto)
 MyObj.Parent.Windows(MyObj.Name).Visible = True
 Target.Copy Destination:=MyObj.Sheets(Sh.Name).Range(Target.Address)
 MyObj.Close savechanges:=True

end sub

сделать то же самое в Book2.xlsm, но изменить strCopyto = "C:\Users\osknows\Desktop\Book1.xlsm"

это один из многих способов сделать это

...