我是 VBA 的初学者,没有任何编码背景,正在尝试制作一种库存应用程序。我遇到了困难,尝试了在互联网上找到的许多代码片段,但都无济于事。
我正在尝试将股票价值(在stock_sheet上)与在distribution_sheet ** Tr或En列中输入的单元格值进行比较,如果 dist 值更大,则告诉用户输入小于或等于股票价值的值。
例如:
如果用户在 distribution_sheet 的单元格F5、H5、J5、...、BN5中输入值(即第 5 行),VBA 应在循环遍历出版物名称(从 E5 到最后一行)时根据stock_sheet!F5检查该值
如果用户在 distribution_sheet 的单元格G5、I5、K5、...、BO5中输入值(即第 5 行),VBA 应在循环出版物名称(E5 到 LastRow)时根据stock_sheet!G5检查该值
截图-1 ->这是带有库存价值的库存表**其中行号可能有所不同**
截图-2 ->以下代码在此工作表上运行
截图-3 ->我的代码在带有语言选项(Tr、En)的本表中不起作用
任何帮助都将不胜感激。
此致。
这是我目前的代码
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range
Application.EnableEvents = False
For Each cell In Target
For i = 13 To 31
If Not Application.Intersect(cell, Range("F" & (i) & ":BO" & (i))) Is Nothing Then
If Not IsNumeric(cell.Value) Or (cell.Value) > Worksheets("stock_sheet").Range("F" & (i)).Value Then
MsgBox Worksheets("stock_sheet").Range("E" & (i)).Value & vbCrLf & " please enter a number between 1 and " & Worksheets("stock_sheet").Range("F" & (i)).Value & _
" for this publication!", vbCritical, "ERROR"
cell.Value = vbNullString
cell.Select
End If
End If
Next i
Next cell
Application.EnableEvents = True
End Sub