0
マクロ私は次の操作を実行するマクロを記述しようとしています:シート1からは、VBAをエクセル - セルの変化にフィルタリングされたデータをコピーする
- データI入力の欄を見て、
- A列のセルに何かを書き込むと、その値がSheet2にフィルタリングされます。
- フィルタを実行した後、複数の値があっても、2番目のシートの列ヘッダーを除くすべてのものを最初のシートにコピーします。
- ボーナスとして、私は何をしようとしているのか、Sheet2の列Aを除くすべてをコピーし、Sheet1の列Bからコピーすることができます。
私はこれを書いてみました:ボックスが表示されますので、Sheet1の変更イベントのための最初のPrivate Sub
時計は
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("A:A")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
MsgBox "Cell " & Target.Address & " has changed. New value is: " _
& Target.Value
copy_filter (Target)
End If
End Sub
Sub copy_filter(Changed)
Worksheets("Sheet2").Select
With Worksheets("Sheet2")
With .Range("$A$1:$L$5943")
.AutoFilter Field:=1, Criteria1:=Changed.Value
.SpecialCells(xlCellTypeVisible).Select
Selection.Offset(1, 0).Copy
End With
End With
Worksheets("Sheet1").Select
Worksheets("Sheet1").Range(Changed.Address).Offset(0, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub
を、私はシートモジュールではなく、ブックのモジュールに入れて、それが動作しますしかし、正確には、2番目のSub
私はこの行にエラーを得る:.AutoFilter Field:=1, Criteria1:=Changed.Value
、エラーは言う:Run-time error '424': Object required
。
私が間違っていることを理解できません。
call copy_filter (Target)
OR
copy_filter Target
のいずれかに
それを解くこと、ありがとうございます。しかし、いくつかの問題が発生しました:ヘッダー行をコピーするたびに '.Offset(1、0)'がヘッダーと1行追加をカットし、 'Selection.Rows.Count'パラメーターも1を返しますいずれの場合も、複数の行が選択されているにもかかわらずこれにより '.Resize(Selection.Rows.Count - 1')を行うことができなくなります。 – devster