【发布时间】:2021-01-05 18:53:29
【问题描述】:
Private Sub invItem_AfterUpdate()
Dim sh As Worksheet
' Dim ckItem As Long
Set sh = ThisWorkbook.Sheets("ACS_Report")
With Me
' ckItem = sh.Range("B:B").Value
If WorksheetFunction.CountIf(sh.Range("B:B"), invItem) = 0 Then 'Checks to see if the scanned value exists.
MsgBox "That Item ID does not exist."
invItem.SetFocus *This does not work the focus is not set back to invItem or the form.*
Exit Sub
End If
iRow = WorksheetFunction.Match(invForm.invItem, sh.Range("B:B"), 0) 'Returns the Row number from the worksheet.
invForm.invUnits = (sh(F) & iRow) *This does not work*
' Application.WorksheetFunction.VLookup(Me.invItem, ACS_Report.Range("Lookup") 2, False)
End With
End Sub
输入表单有三个输入,只有两个是用户输入。用户将扫描项目 ID 表单将根据扫描输入更新单位并等待用户键入或扫描真实单位我还没有为此编写代码,因为我无法获取要更新的单位字段。当它这样做时,实际 Units 需要添加到 invReal 中的任何值,无论它是零还是已经有一个数字。输入完成后,它会更新电子表格并返回表格的开头以进行下一次库存更新。
【问题讨论】:
-
(sh(F) & iRow)- 你是说sh.Range("F" & iRow)吗? -
是的,谢谢 BigBen,确实将表单更新为当前值
-
最好更明确一点:
sh.Range("F" & iRow).Value.