我有一个小谜题。我使用单元格“K6”和“L6”作为输入(用于扫描条形码)。当我选择单元格“K6”并扫描条形码时,单元格“O6”正在从值“0”变为值“1”(通过公式“=IF(K6>0,1,0)”)。
我使用单元格“O6”(何时是“0”)作为“Sub(ByVal 目标作为范围)”的触发器,这个 Sub 调用 marco“Nasklad”,它将“K6”值复制并粘贴到 sheet2(IN_OUT)列“ A" 第一个空白。在它调用宏“Clear”之后选择sheet1(Sklad)并清除单元格“K6”。
整个过程工作正常,我扫描条形码,代码被复制到另一张纸上,我可以扫描另一个代码等等。
Sub worksheet_change(ByVal target As Range)
Set target = Range("O6")
If target.Value > 0 Then
Call Nasklad
End If
End Sub
Sub Nasklad()
Sheets("Sklad").Select
Range("K6").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("IN_OUT").Select
ActiveSheet.Range("A1").End(xlDown).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Call clear
End Sub
Sub clear()
Sheets("Sklad").Select
Range("K6").Select
Selection.ClearContents
End Sub
现在要注意了,当我尝试将单元格“K6”的重复系列命令与单元格“L6”一起使用时,什么也没发生。
看起来“Sub worksheet_change2(ByVal target As Range)”不起作用。当我将“P6”中的“L6”值输入为“1”时(通过公式“=IF(L6>0,1,0)”,这次触发器不运行 Sub,我不知道为什么。
Sub worksheet_change2(ByVal target As Range)
Set target = Range("P6")
If target.Value = 0 Then
Call Vysklad
End If
End Sub
Sub Vysklad()
Sheets("Sklad").Select
Range("L6").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("IN_OUT").Select
ActiveSheet.Range("B1").End(xlDown).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Call clear2
End Sub
Sub clear2()
Sheets("Sklad").Select
Range("L6").Select
Selection.ClearContents
End Sub
我错过了什么?
感谢您的帮助