vba-复制粘贴下一个空白列中的最后n个非空白列-在多个相同格式的工作表上 我有4张表格,格式相同,列数相同,数据不同。 在每张纸上,我想复制最后6个非空白列,并将它们粘贴到接下来的6个空白列中。 应同时在所有4张图纸上执行此操作,即不在一张接一张的图纸上运行宏。

vba-复制粘贴下一个空白列中的最后n个非空白列-在多个相同格式的工作表上 我有4张表格,格式相同,列数相同,数据不同。 在每张纸上,我想复制最后6个非空白列,并将它们粘贴到接下来的6个空白列中。 应同时在所有4张图纸上执行此操作,即不在一张接一张的图纸上运行宏。,vba,copy-paste,nonblank,Vba,Copy Paste,Nonblank,我找到了多个答案,但我正在努力把它们放在一起,我对VBA一无所知 非常感谢此代码复制最后一个非空的第6行列,并将它们粘贴到下一个空的第6行列。但是,此代码仅在图纸名称末尾有数字1到4时有效。 如果图纸名称不是sheet1、sheet2、sheet3和sheet4,请记住在代码中更改图纸名称。希望这对您或其他人有所帮助: Sub A() Dim count As Integer Dim sheetname As String sheetname = sheet For x = 1 To 4

我找到了多个答案,但我正在努力把它们放在一起,我对VBA一无所知


非常感谢

此代码复制最后一个非空的第6行列,并将它们粘贴到下一个空的第6行列。但是,此代码仅在图纸名称末尾有数字1到4时有效。 如果图纸名称不是sheet1、sheet2、sheet3和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

我试过这个-但这只适用于我当前的工作表。我想让它在第一张之后的所有工作表上工作,即选定的工作表。如果我添加了一张工作表或更改了现有工作表的名称,我希望宏也能在新的/重命名的工作表中循环。。。子CopyRange Dim LastRow As Long Dim LastCol As Long LastCol=Cells2,Columns.Count.EndxlToLeft.Column LastRow=CellsRow.Count,A.行范围Cells1,LastCol,CellsRastRow,LastCol.选择所选内容。复制Cells1,LastCol+1.选择活动表。粘贴结束子任务:M.Kjaer。它表示存在应用程序定义或对象定义的错误。调试时,以下内容将突出显示ThisWorkbook.Sheetssheetname.Cellscount-1,1。如果这是一个愚蠢的问题,请选择“道歉”。我尝试了其他的选择,但看不出有什么不对…嗯。真奇怪。。。我能用。是否确实已更改工作表的名称或更改代码以使其匹配?您还必须有4张工作表,或者更正x=1到4的代码部分,或者更正x=1到3的代码部分,或者更正您有多少张工作表:现在可以工作了-非常感谢您对M.KjaerNo问题的帮助。谢谢您: