EXCEL表中,一个表中的某固定三行数据发生变化,自动在新表中记录下来。
答案:3 悬赏:10
解决时间 2021-04-23 00:43
- 提问者网友:堕落的邪教徒
- 2021-04-22 03:33
EXCEL表中,一个表中的某固定三行数据发生变化,自动在新表中记录下来。
如何实现?谢谢
最佳答案
- 二级知识专家网友:悲观垃圾
- 2021-04-22 03:52
你这个记录下来具体指什么?
1、新表要和这三行数据保持同步,也就是和最终状态一模一样?
2、新表只是记录发生更改的部分,记录最终状态。
如果是1,比较简单,直接在新表中用“=”,指向这三行数据对应单元格。
如果是2,就很纠结了。在VBA窗口,把下面的代码放到这三行数据所在的Sheet的Change事件中,可以监控对某一个单元格数据的更改。但是,如果发生多区域的粘贴,且粘贴区域的选中单元格的值没有发生变化,则这个事件不会被触发。而实际上,还是有单元格数据发生改变的……。另外,其他单元格的公式更改也没法相应,又需要在Calculate事件中做出对应操作……。最后,会发现,越陷越深。
不知楼主如何取舍。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MyRow, MyCol As Integer
MyRow = Target.Row
MyCol = Target.Column
If MyRow >= 1 And MyRow <= 3 Then
Sheet2.Cells(MyRow, MyCol) = Cells(MyRow, MyCol)
End If
End Sub
1、新表要和这三行数据保持同步,也就是和最终状态一模一样?
2、新表只是记录发生更改的部分,记录最终状态。
如果是1,比较简单,直接在新表中用“=”,指向这三行数据对应单元格。
如果是2,就很纠结了。在VBA窗口,把下面的代码放到这三行数据所在的Sheet的Change事件中,可以监控对某一个单元格数据的更改。但是,如果发生多区域的粘贴,且粘贴区域的选中单元格的值没有发生变化,则这个事件不会被触发。而实际上,还是有单元格数据发生改变的……。另外,其他单元格的公式更改也没法相应,又需要在Calculate事件中做出对应操作……。最后,会发现,越陷越深。
不知楼主如何取舍。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MyRow, MyCol As Integer
MyRow = Target.Row
MyCol = Target.Column
If MyRow >= 1 And MyRow <= 3 Then
Sheet2.Cells(MyRow, MyCol) = Cells(MyRow, MyCol)
End If
End Sub
全部回答
- 1楼网友:安稳不如野
- 2021-04-22 04:52
估摸着应该用VBA吧。
- 2楼网友:年轻没有失败
- 2021-04-22 04:02
自动记录更新履历,应该只有VBA可以做到了,需要的话扣我 9-5-25-5-1-93;
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯