Excel某数据变动自动填到其它不同单元格
来源:网络收集 点击: 时间:2024-09-02在Sheet1表中”每日进货明细表(表1)“合计金额变动时,根据变动日期汇总到”每日进货金额表(表2)“如下图。

单元格命名:选D12单元格(合计金额)在名称框中输入hjje 。进行命名是为了当“每日进货明细表(表1)”增行数据时,合计金额单元格变化引用时不变。

鼠标移到当前工作表标签栏“Sheet1”表,右键,弹出快捷菜单,如下图。

在快捷菜单找到【查看代码】并单击,打开VBA(宏)编辑界面,如下图。

在左边代码框中复制下面代码到该框中,就完成任务。如下图。
Private Sub Worksheet_Calculate()
2019-10-26 9:50:06
Dim d1 As Date, r As Long, i As Long, k As Long
Static OldValue, d2
d1 = ActiveWorkbook.Sheets(Sheet1).Range(c3).Value
If Range(hjje).Value OldValue Or d2 d1 Then
OldValue = Range(hjje).Value
d2 = d1
k = 0
If ActiveWorkbook.Sheets(Sheet1).Range(H6).Value Then
r = ActiveWorkbook.Sheets(Sheet1).Range(H5).End(xlDown).Row
For i = 6 To r
If ActiveWorkbook.Sheets(Sheet1).Range(H i).Value = d1 Then
k = 1
ActiveWorkbook.Sheets(Sheet1).Range(I i).Value = OldValue
Exit For
End If
Next i
If k = 0 Then
ActiveWorkbook.Sheets(Sheet1).Range(H r + 1).Value = d1
ActiveWorkbook.Sheets(Sheet1).Range(i r + 1).Value = OldValue
End If
Else
ActiveWorkbook.Sheets(Sheet1).Range(H6).Value = d1
ActiveWorkbook.Sheets(Sheet1).Range(i6).Value = OldValue
End If
End If
End Sub

如上步骤操作过程如下动画图。

下面看下神奇的运行结果,为了模拟数据变化,日期变化在C3单元格输入公式“=C14”,数量变化在B6单位元格输入公式“=B14”。改变数量和日期时,合计金额变化将填到”每日进货金额表(表2)“中,列表中无有C3单元格日期会在表最后增行填写日期和合计金额,如下动态图。

注意:C3单元格的公式是“=TODAY()”每天打开工作薄都会生成昨天数据。如果觉得这篇经验帮到了您,请点击下方的 “投票点赞 或者“收藏”支持我!还有疑问的话可以点击下方的 “我有疑问”,谢谢啦!
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_1184926.html