我正在尝试从一张("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
答案 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列中找到的第一个空白列