我的目標:
複製每個當前區域的最後一行並將它們粘貼到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,我在代碼中添加了變量聲明。 – Santa
我需要看到整個Sub,因爲還有更多的事情 - 'ws'(可能)被設置成循環,並且必須有一些代碼在複製/粘貼後重新排列列。看一看[mcve]的內容。 –