录入界面:
数据表格:
录入数据后,如发现数据有问题,就需要根据录入单号来修改数据。以E-123457这个单号为修改栗子,需要修改的样子如下图:
我们可以发现,条目数增加了,产品的数量有更改。所以在修改的时候,不能直接替换数据表中的对应数据,需要先删除,再插入修改的数据。
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
删除了数据之后,就需要插入新的数据,执行的是数据录入这个功能,但不需要根据单号检查数据是否已经存在,因为删除了,套用数据录入的代码,稍作修改。
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
联系客服