更改每个工作表中的值并保留每个工作表中的值

时间:2015-02-09 13:01:59

标签: excel vba excel-vba

所以,信息

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个小时。我尝试了不同的东西,但我无法做到。

2 个答案:

答案 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