私は小さなパズルを持っています。セル「K6」と「L6」を入力として使用しています(バーコードをスキャンするため)。セル「K6」を選択してバーコードをスキャンすると、セル「O6」は値「0」から値「1」になります(式「= IF(K6> 0,1,0)」による)。
「Sub (ByVal target As Range)」のトリガーとしてセル「O6」(大きい場合は「0」) を使用しています。この Sub は、「K6」値をコピーしてシート 2 (IN_OUT) 列に貼り付ける marco「Nasklad」を呼び出します」 A」最初のブランク。その後、シート1(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 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
私は何か見落としてますか?
助けてくれてありがとう