首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 办公应用 > OFFICE教程 >

EXCEL怎么实现两个单元格中的数据一致,即如果小弟我修改了其中一个单元格的数据的内容,另外一个同时也被修改为一致的内容

2012-02-28 
EXCEL如何实现两个单元格中的数据一致,即如果我修改了其中一个单元格的数据的内容,另外一个同时也被修改为

EXCEL如何实现两个单元格中的数据一致,即如果我修改了其中一个单元格的数据的内容,另外一个同时也被修改为一致的内容
EXCEL如何实现两个单元格中的数据一致,即如果我修改了其中任何一个单元格的数据的内容,另外一个同时也被修改为一致的内容。


多谢了!!


[解决办法]
使用VBA来做,假 设现在形成关系的是A1与B1单元格.
参考如下代码:
Private Sub Worksheet_Change(ByVal Target As Range)

If (Target.Address = "$A$1 ") Or (Target.Address = "$B$1 ") Then

Application.EnableEvents = False
If Target.Address = "$A$1 " Then
Range( "b1 ").Value = Target.Value
Else
Range( "a1 ").Value = Target.Value
End If
Application.EnableEvents = True

End If

End Sub
[解决办法]
同样仍是这个代码,只要小改动即可.以A,B两列来说吧

Private Sub Worksheet_Change(ByVal Target As Range)

'如果当前单元格是在A或B列时
If Target.Column = 1 Or Target.Column = 2 Then

Application.EnableEvents = False

'如果当前单元格是A列,则它移动一列(即B列)的单元格的值等于当前单元格
'这里是根据 列号 进行判断 ,如果是A列,那么要同步的值则是 B列,否则则是A列
'OFFSET(移动行,移动列)
'其中的参数:为正则向右移,为负则向左移,为0不发生改变
If Target.Column = 1 Then
Target.Offset(0, 1) = Target.Value
Else
Target.Offset(0, -1) = Target.Value
End If
Application.EnableEvents = True

End If

End Sub
这个代码关键是要理解.然后自己再修改
[解决办法]
不要使用For...Next循环。您的这个问题不需要使用循环语句,如下即可(A、B两列的情况):

If Target.Column = 1 Then
Target.Offset(0, 1) = Target.Value
ElseIf Target.Column = 2 Then
Target.Offset(0, -1) = Target.Value
End If

[解决办法]
代码开始的地方加
Application.ScreenUpdating = False

最后加
Application.ScreenUpdating = True

最简单的优化  一般效果比较明显

热点排行