複数のワークシートの同じ場所にあるフィルタリングされたテーブルに行を挿入し、すべての内容をコピーすることができる正しいVBAコードを取得しようとしています。上の行全体。Excel VBA複数のシートに行を挿入してデータをコピーする
ブック内の各シートに関連するチェックボックスがあります。チェックボックスをオンにすると、このシートに行が挿入されます。
このシートはパスワードで保護されています。パスワードは、ファイル内の別のワークシートにあります。
私はほとんどこれを動作させました。私のファイルは次の場所にあります。
https://drive.google.com/file/d/0B5HnHgSNFkFid0gwbDNMOFN1NUU/view?usp=sharing
次のようにコードは次のとおりです。
Sub Insert_Rows()
Dim sh As Worksheet
For Each sh In Sheets
If sh.Name = "Sheet1" And Worksheets("Sheet4").Range("D1").Value = True Or _
sh.Name = "Sheet2" And Worksheets("Sheet4").Range("D2").Value = True Or _
sh.Name = "Sheet3" And Worksheets("Sheet4").Range("D3").Value = True Then
With sh
.Unprotect Password:=Worksheets("Sheet4").Range("A1")
.Cells(ActiveCell.Row, 4).EntireRow.Insert
.Range(.Cells(ActiveCell.Row, 1), .Cells(ActiveCell.Row, 4)).FillDown
.Protect DrawingObjects:=True, contents:=True, Scenarios:=True, Password:=Worksheets("Sheet4").Range("A1")
End With
End If
Next sh
End Sub
私が午前問題はない上記のすべての行からのデータが中であるということですコピーされます。 5列目のデータはコピーされません。私はそれがコードの中の4と関係があると確信しています.Cells(ActiveCell.Row, 4)
。列の数にかかわらず上の行全体をコピーする必要があります。
大変助かりました。
おかげ
私はあなたが持っている別の問題、つまり、それぞれのシートに行が挿入されている場所にヒットしたと思います。 私が必要とするものを試してみましょう。ユーザーは、シート4のチェックボックスをクリックして、使用するシートを選択します。そのポイントのシート1,2、および3は、すべて同じデータを表示します。データは特定の行のみを表示するようにフィルタリングされます。 これで、選択したシートの1つの行を選択して複製できる必要があります。重複行は、選択されたすべてのシートの同じポイントに挿入され、選択された行からデータをコピーします。 – Mustapha
@Mustapha - ユーザーがセルを選択して(つまり、どの行を参照しているかを示す情報を入力して)、行を挿入するコードを実行するボタンなどを押すと、問題はありません。 (セルを選択する前にシート4のチェックボックスをクリックしたと仮定します)。ただし、コードが一度実行されると、シート1と2と3は同じデータを持たなくなります。別のセル/行に対して繰り返されると、問題が発生します。それが必要な場合は、おそらくデザインを考え直す必要があります。 – YowE3K