所以,信息
Sheet1 "A1"
Sheet2 "A1"
Sheet3 "A1"
现在我希望所有这些工作表共享相同的值,无论哪个值都无关紧要。 但我必须能够在每张纸上更改此值。 例如:值为20.
Sheet1 A1's value = 20
Sheet2 A1's value = 20
Sheet3 A1's value = 20
现在我打开了第2张,我将20更改为30。
Sheet1 A1's value = now 30
Sheet2 A1's value = now 30
Sheet3 A1's value = now 30
然后我注意到表3中的其他内容,我将此值更改为50
Sheet1 A1's value = now 50
Sheet2 A1's value = now 50
Sheet3 A1's value = now 50
最后,我回到第1页,我看到我做了一个错误的计算,而不是50,它必须是40.所以我将值更改为40。
Sheet1 A1's value = now 40
Sheet2 A1's value = now 40
Sheet3 A1's value = now 40
我该怎么做?我试着把它放在每张纸上:
Private sub Worksheet_Change (Byval target as range)
但是一旦我得到3张或更多张,"this function is not defined"
我现在在互联网上搜索了4个小时。我尝试了不同的东西,但我无法做到。
答案 0 :(得分:0)
根据需要更改每张表的sheet
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Cells(1, 1) Then
sheet2.Cells(1, 1) = Cells(1, 1)
sheet3.Cells(1, 1) = Cells(1, 1)
sheet4.Cells(1, 1) = Cells(1, 1)
End If
End Sub
答案 1 :(得分:0)
非常简单,只需在每个跟踪工作表的Worksheet_Change
事件中强制更改值:
Private Sub Worksheet_Change(ByVal Target As Range) '<-- in Sheet 1
Sheets("Sheet2").Cells(Target.Row, Target.Column).Value = Target.Value
Sheets("Sheet3").Cells(Target.Row, Target.Column).Value = Target.Value
End Sub
Private Sub Worksheet_Change(ByVal Target As Range) '<-- in Sheet 2
Sheets("Sheet1").Cells(Target.Row, Target.Column).Value = Target.Value
Sheets("Sheet3").Cells(Target.Row, Target.Column).Value = Target.Value
End Sub
Private Sub Worksheet_Change(ByVal Target As Range) '<-- in Sheet 3
Sheets("Sheet1").Cells(Target.Row, Target.Column).Value = Target.Value
Sheets("Sheet2").Cells(Target.Row, Target.Column).Value = Target.Value
End Sub
P.S。以上将改变三张纸中的每个单元格。如果您只想更新A1,则需要添加一个检查,这意味着:
If Target.Address = "$A$1" Then
'change values
End If