Вы не можете сделать это без макроса. Этот код должен работать:
Private Sub Worksheet_Change(ByVal Target As Range)
therow = 1
thecolumn = 1
Dim wks As Worksheet
cellrow = Target.Row
cellcolumn = Target.Column
If (cellrow = therow And cellcolumn = thecolumn) Then
Set wks = ThisWorkbook.Worksheets("Sheet2")
wks.Cells(cellrow, cellcolumn) = Target.Value
End If
End Sub
Откройте Macros с помощью клавиш ALT+F11, дважды щелкните по Sheet1 с левой стороны и вставьте код с правой стороны. Этот код выполняется на Sheet 1
, поэтому он копирует изменения на Sheet1 A1
на Sheet2 A1
.
Каждый раз, когда происходит изменение в листе, этот макрос выполняется. Он проверяет, находится ли измененная ячейка в строке 1 и столбце 1 (ячейка A1), а затем копирует значение в той же ячейке в Sheet2.
Если вы также хотите проверить изменения с Sheet2 на Sheet1 , то:
- Дважды щелкните Sheet2 в левой части.
- Вставьте код с правой стороны.
- Измените строку
Set wks = ThisWorkbook.Worksheets("Sheet2")
для указания нового места назначения: Set wks = ThisWorkbook.Worksheets("Sheet1")
.
Прямо сейчас этот макрос использует переменные therow и столбец, чтобы принять решение о копировании значения в другой лист. В начале они установлены в 1 в строках therow=1
и thecolumn=1
означая, что мы заинтересованы в ячейке A1. И далее мы проверяем, соответствуют ли измененные ячейки этим значениям в строке If (cellrow = therow And cellcolumn = thecolumn) Then
.
Вы можете изменить значения, чтобы настроить их в соответствии с вашими потребностями, даже проверяя полный столбец или строку, например:
Изменение строки проверки на If (cellcolumn = thecolumn) Then
скопирует изменения, которые происходят в столбце, значение которого совпадает с переменной thecolumn
независимо от того, какая это строка.
Другой пример:
Изменив строку проверки на If (cellcolumn > thecolumn) Then
скопирует изменения, которые происходят в любом столбце, превышающем значение thecolumn
независимо от того, какая это строка.