打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VBA入门38:VBA与函数2

录入界面:

数据表格:

录入数据后,如发现数据有问题,就需要根据录入单号来修改数据。以E-123457这个单号为修改栗子,需要修改的样子如下图:

我们可以发现,条目数增加了,产品的数量有更改。所以在修改的时候,不能直接替换数据表中的对应数据,需要先删除,再插入修改的数据。



1
删除代码


Sub 删除()

    Dim iCount As Long '删除的数据条数

    Dim NO As String '录入单号

    Dim Rng As Range  '录入单号数据的首个单元格

    

    NO = Sheets('数据录入').Range('b4') '录入单号

    

    With Sheets('数据储存')

        '删除之前需要检查【录入单号】是否存在,不存在则退出程序

        iCount = Application.CountIf(.Range('a:a'), NO) '根据单号返回数据条数

        If iCount = 0 Then ' 如果没有数据

            MsgBox '单号' & NO & '不存在,怎么能删除'

            Exit Sub '退出过程

        Else

            Set Rng = .Range('A:A').Find(NO, lookat:=xlWhole) '录入单号的首个单元格

            Rng.Resize(iCount, 9).EntireRow.Delete  '删除所有数据

        End If

    End With

    MsgBox '数据已删除'

End Sub


删除了数据之后,就需要插入新的数据,执行的是数据录入这个功能,但不需要根据单号检查数据是否已经存在,因为删除了,套用数据录入的代码,稍作修改。

2
修改代码



Sub 修改()

    Dim i As Long, LastRow As Long

    Dim NO As String '录入单号

    Dim iCount As Long '产品条目数

    

    Call 删除   '调用删除过程

    

    With Sheets('数据录入')

        NO = .Range('b4') '录入单号

        iCount = Application.CountA(.Range('a6:a10')) '产品条目数量

    End With

    

    '录入数据

    With Sheets('数据储存')

        LastRow = .Cells(Rows.Count, 1).End(xlUp).Row '最后一行

        For i = 1 To iCount

            .Cells(LastRow i, 1) = NO  '录入单号

            .Cells(LastRow i, 2) = Sheets('数据录入').Range('f4') '日期

        Next

        .Cells(LastRow 1, 3).Resize(iCount, 7) = Range('a6').Resize(iCount, 7).Value '入库单信息

    End With

    MsgBox '录入完毕'

End Sub


3
结果




本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
如何使用 VBA 在 Excel 表格中搜索并标记数据
ChatGPT写段VBA代码汇集多表不在话下,但......
Excel VBA宏 链接服务器 上传和下载数据
使用VBA基于列中的值拆分工作簿
电脑技巧达人vba基础篇
给学习Excel VBA数组的人,一点点自己学习的心得
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服