- 我有4張格式相同(不同數據的列相同數量)的表。
- 在每張紙上,我想複製6個最後一個非空白列並將它們粘貼到接下來的6個空白列中。
- 應該在所有4張紙上一次完成(即不在紙張後面運行宏張)。
我發現了多個部分的答案,但我努力把它們放在一起(我對VBA沒有任何認識)。vba - 複製粘貼最後一個非空白列在下一個空白列 - 在多個相同格式表
謝謝很多
我發現了多個部分的答案,但我努力把它們放在一起(我對VBA沒有任何認識)。vba - 複製粘貼最後一個非空白列在下一個空白列 - 在多個相同格式表
謝謝很多
這段代碼複製最後一個不空行(6列),並將其粘貼到一個空行(6列)。但是,如果您的工作表名稱最終具有編號1至4,則此代碼纔有效。 (記住要改變SHEETNAME中的代碼,如果你的工作表名稱不是「工作表Sheet1」,「Sheet2中」,「表Sheet 3」和「sheet4」)希望它可以幫助你或其他(:
Sub A()
Dim count As Integer
Dim sheetname As String
sheetname = sheet
For x = 1 To 4
sheetname = "sheet" & x
Worksheets(sheetname).Activate
count = 1
Do Until ThisWorkbook.Sheets(sheetname).Cells(count, 1).Value = ""
count = count + 1
Loop
ThisWorkbook.Sheets(sheetname).Cells(count - 1, 1).Select
ActiveCell.Resize(, 6).Copy
ActiveCell.Offset(1, 0).PasteSpecial xlPasteValues
Next x
End Sub
....剛纔看到它說6不可─空 「列」,而不是 「行」 ... –
謝謝M. Kjaer。它說有一個應用程序定義的錯誤或對象定義的錯誤。 當我調試時,以下突出顯示「ThisWorkbook.Sheets(sheetname).Cells(count - 1,1)。Select」 道歉,如果這是一個愚蠢的問題。我試過其他的選擇,但看不出有什麼不對... –
嗯。這很奇怪......它適用於我。您確定您已更改牀單名稱或更改了代碼,以便匹配嗎?您還必須有4張紙或更正代碼部分「對於x = 1到4」到「對於x = 1到3」或您有多少張紙張:) –
那你試試? – prasun
我試過這個 - 但是這隻適用於當前工作表上,而且我想讓它在所有工作表之後工作(即選定的工作表)如果我添加一個工作表或者我更改了現有片材的名稱,我想宏循環通過新的/重命名片以及... 子copyRange是() 昏暗LASTROW只要 昏暗LASTCOL只要 LASTCOL =單元格(2,Columns.Count).End(xlToLeft).Column LastRow = Cells(Rows.Count,「A」)。行 範圍(單元格(1,LastCol),單元格(LastRow,LastCol))。 Selection.Copy 細胞(1,LASTCOL + 1)。選擇 ActiveSheet.Paste 結束子 –