首页 文章

将单元格复制到最后一个空白单元格并粘贴到新工作表中

提问于
浏览
-1

我想复制一系列单元格,即从F列的第7行到列K,并将复制的单元格粘贴到另一个工作表(Sheet2)中 . 该范围应该从第7行复制到最后一个空白单元格,每次在同一范围内替换之前的值时,它应该从(B1)粘贴到(Sheet2)B1到B6 .

请帮我开始吧 .


我已按照建议进行了一些更改,但我希望代码循环使用sheet(2)中的值,并通过仅在行A5中替换AG5来粘贴表3中的值 . 但是下面的代码只粘贴第一行 . 它应该在第2页中从第一行循环到最后一个空单元格,并在范围A5到AG5中的第3页中粘贴 .

Sub LoopCopy()

Dim EndRow As Integer

'Find the last row with data

EndRow = ThisWorkbook.Sheets(2).Range("D7").End(xlDown).Row
'Set the range in sheet 2 to the range you want to copy in sheet 1
ThisWorkbook.Sheets(3).Range("A5", "AG5").Value = ThisWorkbook.Sheets(2).Range("F7", "AL" & EndRow).Value
End Sub

1 回答

  • 1

    不使用剪贴板是一种很好的做法,以防在代码运行时复制某些内容并粘贴而不是您想要的内容 . 您可以将一个范围值设置为另一个,而不是使用复制和粘贴 . 对于一个看起来像这样的单元格 .

    ThisWorkbook.Sheets(2).Range("A1").Value = ThisWorkbook.Sheets(1).Range("A1").Value
    

    这样可以有效地将工作表1中A1的值复制到工作表2中的A1而不使用剪贴板 . 您可以对一系列单元格执行相同操作,如下所示 .

    ThisWorkbook.Sheets(2).Range("A1:C3").Value = ThisWorkbook.Sheets(1).Range("A1:C3").Value
    

    如果您想要聪明并动态定义范围,可以使用以下步骤进行操作 .

    Dim EndRow As Integer
    
    'Find the last row with data
    EndRow = ThisWorkbook.Sheets(1).Range("F7").End(XlDown).Row
    'Set the range in sheet 2 to the range you want to copy in sheet 1
    ThisWorkbook.Sheets(2).Range("B1","G" & EndRow - 6).Value = ThisWorkbook.Sheets(1).Range("F7","K" & EndRow).Value
    

    我希望这有帮助!

相关问题