vba - 将最后 n 个非空白列复制粘贴到下一个空白列中 - 在多个相同格式的工作表上
vba - copy-paste the last n non-blank column in the next blank column - on multiple same-formatted sheets
- 我有 4 个 sheet 格式相同(相同列数但数据不同)。
- 在每个 sheet 上,我想复制最后 6 个非空白列并将它们粘贴到接下来的 6 个空白列中。
- 应该在所有 4 个 sheet 上同时完成(即不是 运行 sheet 之后的宏 sheet)。
我找到了多个答案,但我很难将它们组合在一起(我对 VBA 一无所知)。
非常感谢
此代码复制最后一个非空行(6 列)并将它们粘贴到下一个空行(6 列)。但是,此代码仅在您的 sheet 姓名最后的数字为 1 到 4 时才有效。
(如果您的 sheet 名称不是 "sheet1"、"sheet2"、"sheet3" 和 "sheet4",请记住更改代码中的 sheetname)希望它帮助您或其他人 (:
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
- 我有 4 个 sheet 格式相同(相同列数但数据不同)。
- 在每个 sheet 上,我想复制最后 6 个非空白列并将它们粘贴到接下来的 6 个空白列中。
- 应该在所有 4 个 sheet 上同时完成(即不是 运行 sheet 之后的宏 sheet)。
我找到了多个答案,但我很难将它们组合在一起(我对 VBA 一无所知)。
非常感谢
此代码复制最后一个非空行(6 列)并将它们粘贴到下一个空行(6 列)。但是,此代码仅在您的 sheet 姓名最后的数字为 1 到 4 时才有效。 (如果您的 sheet 名称不是 "sheet1"、"sheet2"、"sheet3" 和 "sheet4",请记住更改代码中的 sheetname)希望它帮助您或其他人 (:
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