首页 > 解决方案 > 从 Sheet1 复制使用的范围并粘贴到 Sheet3

问题描述

我一直在尝试制作一个代码,将UsedRangefromSheet1并将该范围粘贴到Sheet3.

每次运行代码时,UsedRange都会Sheet3从第一个空行粘贴到。

例如:我将按下运行的数据中有 5 行(第一行将始终是标题),Sheet1代码会将数据复制并粘贴到其中Sheet3 Row2(第一行将始终是标题)。

所以现在Sheet3有数据,直到Row5我再次按下运行按钮,然后数据将从中粘贴Row6

每次按下按钮时,数据将相应地粘贴。我在网上获得了一个代码并尝试对其进行编辑,但它没有按我的意愿工作。

对你的帮助表示感谢。

代码。

Sub usedrange()

    Dim ws1         As Worksheet
    Dim ws2         As Worksheet
    Dim source      As Range
    Dim target      As Range
    Dim lastColumn  As Long

    Set ws1 = Worksheets("NewSheet")
    Set ws2 = Sheet3

    With ws2
        lastrow = .Cells(Rows.Count, 1).End(xlUp).Row
        If WorksheetFunction.CountA(.Rows(1)) > 0 Then
            lastrow = lastrow + 1
        End If
    End With

    Set source = ws1.usedrange.Offset(1)
    Set target = ws2.Cells(, lastrow)

    source.Copy Destination:=target
    Application.CutCopyMode = False

End Sub

标签: excelvba

解决方案


复制使用范围

Option Explicit

Sub copyUsedRange()

    Dim ws1         As Worksheet
    Dim ws2         As Worksheet
    Dim Source      As Range
    Dim Target      As Range
    Dim LastRow     As Long
    
    ' Code names
    Set ws1 = Sheet1
    Set ws2 = Sheet3
    ' Tab Names
    'Set ws1 = ThisWorkbook.Worksheets("Sheet1")
    'Set ws2 = ThisWorkbook.Worksheets("Sheet3")
    
    With ws1.UsedRange
        Set Source = .Resize(.Rows.Count - 1).Offset(1)
    End With
    
    With ws2
        Set Target = .Cells(.Rows.Count, 1).End(xlUp).Offset(1)
    End With
 
    Source.Copy Target

End Sub

推荐阅读