Excel 复制、粘贴然后移动下一行

Excel 复制、粘贴然后移动下一行,excel,vba,Excel,Vba,我正在尝试将数据从工作表“MAINSHEET”单元格M9复制到O9,并将其粘贴到工作表“COPYDATA”的B列。首先将数据粘贴到B2,然后将数据粘贴到B3,然后粘贴到B4并继续。。。但它不在下面,继续粘贴在B2单元上 Sub Copy() Dim lastrow As Integer lastrow = ThisWorkbook.Sheets("COPYDATA").Cells(Rows.Count, 1).End(xlUp).Row Sheets("

我正在尝试将数据从工作表“MAINSHEET”单元格M9复制到O9,并将其粘贴到工作表“COPYDATA”的B列。首先将数据粘贴到B2,然后将数据粘贴到B3,然后粘贴到B4并继续。。。但它不在下面,继续粘贴在B2单元上

Sub Copy()

Dim lastrow As Integer
lastrow = ThisWorkbook.Sheets("COPYDATA").Cells(Rows.Count, 1).End(xlUp).Row
    
Sheets("MAINSHEET").Range("M9:O9").Copy
Worksheets("COPYDATA").Range("B" & lastrow + 1).PasteSpecial xlPasteValues

End Sub

您正在计算列1中的行数,但粘贴到列2中,因此最后一行始终保持不变

而是计算列B中的行

lastrow = ThisWorkbook.Sheets("COPYDATA").Cells(Rows.Count, 2).End(xlUp).Row

您正在计算列1中的行数,但粘贴到列2中,因此最后一行始终保持不变

而是计算列B中的行

lastrow = ThisWorkbook.Sheets("COPYDATA").Cells(Rows.Count, 2).End(xlUp).Row
试试这个:

Sub Copy()

Dim lastrow As Long
lastrow = ThisWorkbook.Sheets("COPYDATA").Cells(ThisWprkbook.Sheets("COPYDATA").Rows.Count, "B").End(xlUp).Row


Sheets("MAINSHEET").Range("M9:O9").Copy
Worksheets("COPYDATA").Range("B" & lastrow + 1).PasteSpecial xlPasteValues

End Sub
您需要修改代码以获取COPYDATA sheet的行数并使用列“B”。

尝试以下操作:

Sub Copy()

Dim lastrow As Long
lastrow = ThisWorkbook.Sheets("COPYDATA").Cells(ThisWprkbook.Sheets("COPYDATA").Rows.Count, "B").End(xlUp).Row


Sheets("MAINSHEET").Range("M9:O9").Copy
Worksheets("COPYDATA").Range("B" & lastrow + 1).PasteSpecial xlPasteValues

End Sub

您需要修改代码以获取COPYDATA表的行数,并使用列“B”。

行数变量必须为
Long
类型,因为Excel的行数超过
Integer
所能处理的行数。事实上,VBA中有,它通常可以被
Long
替换。行计数变量必须是
Long
类型,因为Excel的行数超过
Integer
所能处理的行数。实际上,VBA中有,通常可以用
Long
@amitpauli替换。如果这回答了您的问题,请向上投票/将其标记为已解决:将其标记为answer@AmitPaulIf这回答了你的问题,请投票/标记为已解决:标记为答案除此之外,行计数变量的类型必须为
Long
,因为Excel的行数超过了
Integer
所能处理的行数。实际上,VBA中有一个,它通常可以被
Long
替换。此外,行计数变量必须是
Long
类型,因为Excel的行数超过
Integer
所能处理的行数。事实上,VBA中有,它通常可以被
Long
替换。