尝试从一个工作表复制范围并将其粘贴到另一个工作表的列中的下一个空单元格

时间:2018-03-26 08:22:22

标签: excel vba excel-vba

我正在尝试从一张("H2:H200")复制一个范围,或者可以Range("H2").End(xlDown)(这些都不起作用)并将其粘贴到另一个单元格上的下一个空单元格。 (基本上把两列放在一起)。我有以下代码,但我得到"工作表对象失败"错误。我做错了什么?

Sub Mergescript()
Dim ssaw_p As Worksheet
Dim oqs As Worksheet

Set ssaw_p = Sheets("SSAW_EXPORT")
Set oqs = Sheets("SQL_IMPORT")

ssaw_p.Range("H2:H200").Copy Destination:=oqs.Range("G").End(xlDown).Offset(1, 0)

End Sub

4 个答案:

答案 0 :(得分:2)

Sub Mergescript()
Dim ssaw_p As Worksheet
Dim oqs As Worksheet

Set ssaw_p = ThisWorkbook.Sheets("SSAW_EXPORT")
Set oqs = ThisWorkbook.Sheets("SQL_IMPORT")

With ssaw_p
    .Range("H2:H200").Copy Destination:=oqs.Range("G1").End(xlDown).Offset(1, 0)
End With

End Sub

这是有效的

答案 1 :(得分:2)

oqs.range,不正确试试这个:

ssaw_p.Range("H2:H200").Copy Destination:=oqs.Range("G1").End(xlDown).Offset(1, 0)

这将在G列第一个空单元格后复制您的ssaw范围

答案 2 :(得分:2)

为避免尝试离开工作表的末尾(如果G中没有任何内容)请使用以下内容。

Option Explicit

Sub Mergescript()
    Dim ssaw_p As Worksheet
    Dim oqs As Worksheet

    Set ssaw_p = Sheets("SSAW_EXPORT")
    Set oqs = Sheets("SQL_IMPORT")

    Dim lastRow As Long
    Dim nextRow As Long

    With oqs

      lastRow = .Cells(.Rows.Count, "G").End(xlUp).Row

    End With

    If lastRow = 1 Then
        nextRow = 1
    Else
       nextRow = lastRow + 1
    End If

     ssaw_p.Range("H2:H200").Copy Destination:=oqs.Range("G" & nextRow)

End Sub

答案 3 :(得分:2)

尝试

ssaw_p.Range("H2:H" & Range("H2").End(xlDown).Row).Copy oqs.Range("G" & oqs.Range("G2").End(xlDown).Row + 1)

此代码将始终复制工作表EXPORT范围H2中的所有数据:到H列中的最后一个单元格并将其粘贴到工作表IMPORT上的G列中找到的第一个空白列