第二次更改(ByVal目标为范围)无效



我有一个小谜题。Im使用单元格"K6"one_answers"L6"作为输入(用于扫描条形码(。当我选择单元格"K6"并扫描条形码时,单元格"O6"将从值"0"变为值"1"(根据公式"=IF(K6>0,0("(。

Im使用单元格"O6"(当为grater时为"0"(作为"Sub(ByVal target as Range("的触发器此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

我错过什么了吗?

感谢您帮助

感谢@BigBen和@urdearboy,这对我和我已经将Sub-worksheet_change(ByVal target As Range(更改为

Sub worksheet_change(ByVal target As Range)
Set target = Range("O6")
Set target2 = Range("P6")
If target.Value > 0 Then
Call Nasklad
End If
If target2.Value > 0 Then
Call Vysklad
End If
End Sub

最新更新