|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
- Private Sub Worksheet_Change(ByVal Target As Range)
- '如果更改的单元格不是C列第3行以下的单元格或更改的单元格个数大于1时退出程序
- If Application.Intersect(Target, Range("C3:D65536")) Is Nothing Or Target.Count > 1 Then
- Exit Sub
- End If
- Dim i, r As Integer '定义变量
- Dim MyValue, RefValue As String
- i = 3 '参照表中第1条记录在第3行,所以初值设为3
- Do While Cells(i, "I").Value <> "" '在参照表里循环
- '判断录入的字母与参照表的字母是否相符
- r = Target.Row
- MyValue = UCase(Cells(r, "C").Text) & UCase(Cells(r, "D").Text)
- RefValue = Cells(i, "I").Text & Cells(i, "K").Text
- If MyValue = RefValue Then
- Application.EnableEvents = False '禁用事件,防止将字母改为商品名称时,再次执行程序
- Cells(r, "C").Value = Cells(i, "I").Offset(0, 1).Value '写入产品名称
- Cells(r, "B").Value = Date '写入销售日期
- Cells(r, "D").Value = Cells(i, "I").Offset(0, 2).Value '写入商品代码
- Cells(r, "E").Value = Cells(i, "I").Offset(0, 3).Value '写入商品单价
- Target.Offset(0, 3).Select '选中销售数量列,等待输入销售数量
- Application.EnableEvents = True '重新启用事件
- Exit Sub
- End If
- i = i + 1
- Loop
- End Sub
复制代码 |
|