私の目標:すべての現在の領域で最後の行をコピーしてA26領域に貼り付けます。
したがって、A26はその新しい領域の最初のセルになります。
また、セル内容を切り替える。
新しい範囲のセルA =セルCの内容が
B-> E、C-> B、D-> D、E-> Aであることに注意してください。
期待される結果は以下のイメージにあります。VBA:現在の領域の最後の行をコピーして貼り付けます
問題が現在のコードにあります:
すべてのセルをコピーしてそれぞれの列に貼り付ける方法がわかりませんでした。
最後の行のみをハイライト表示する代わりに、
現在の領域の一部に最後の2行が強調表示されています。
また、現在のコードは、ループ内で上書きされていたシートの最後の行だけをコピーしますか?
Dim ws As Worksheets
Dim rng As Range
Dim r As Long
Dim wb As Workbook
Set wb = ThisWorkbook
For Each ws In wb.Worksheets
If ws.Name = "Master" Then
For Each rng In ws.UsedRange.SpecialCells(xlCellTypeConstants, 3).Areas
r = rng.Cells(rng.Rows.Count, 1).Row 'last row
Set rng = ws.Range(Cells(r, "A"), Cells(r, "J")) 'range = last row cells from col A-J
rng.Interior.ColorIndex = 3 'highlight that range
rng.Copy
ws.Range("A26").PasteSpecial xlPasteValues 'paste them all to same sheet A26
Next rng
End If
Next ws
End Sub
私はまだVBAに新しいです。誰も私に光を当てることはできますか?
コードにもう少しコンテキストを追加できますか?変数宣言コードは、@ MarkFitzgerald、 –
に役立ちます。Iveは変数宣言をコードに追加しました。 – Santa
もっと多くのことが起こっているので、Sub全体を見る必要があります。 'ws'はループ内で設定されており、コピー/ペースト後に列を並べ替えるコードが必要です。何を含めるべきかについては、[mcve]を見てください。 –