将相同的值粘贴到不同工作表中的多个单元格中

时间:2019-10-04 15:51:33

标签: excel vba

我必须使用VBA在Excel中将某些数据从工作表复制粘贴到另一个工作表中。 我已经能够将工作表A的第一组数据复制粘贴到工作表B,而不会出现问题。 现在,我需要将工作表A中的相同单元格值复制到工作表B中的范围

我试图定义工作表B中的最后一个单元格和工作表B中的第一个单元格,以便定义应该复制工作表A中的值的范围。

这是lastrow的代码(工作正常)

Last_Row2 = Sheets("Records").Range("a1").End(xlDown).Row

起始单元格的代码

legrng = Sheets("Records").Cells(Rows.count, 4).End(xlUp).Offset(1)

将值粘贴到范围内的代码

Range("LegRng & Last_row2").Copy Destination = "cell value in sheet A"

我在这里收到错误消息:

Range("LegRng & Last_row2").Copy Destination = "cell value in sheet A"

错误是:方法'object_global的范围'失败

你能告诉我我在做什么错吗?

感谢您的帮助/说明

2 个答案:

答案 0 :(得分:1)

您有几个错误

首先,您尝试引用名称为 LegRng&Last_row2 的范围。这样的范围在您的工作表中不存在,因为该名称是非法的,所以不存在。

如果您要设置对包含多个单元格的范围的引用,请按照以下方式进行操作:

Sheets("Records").Range(startCell, endCell)

因此,首先您需要设置对startCellendCell的引用(我假设您希望最后一个单元格也在第4列中):

Set startCell = Sheets("Records").Cells(Rows.count, 4).End(xlUp).Offset(1)
Set endCell = Sheets("Records").Cells(Last_Row2, 4)

您可以使用值的属性Value填充范围

rng.Value = "value"

因此,最后,您的代码应如下所示:

With Sheets("Records")
    Last_Row2 = .Range("a1").End(xlDown).Row
    Set startCell = .Cells(Rows.count, 4).End(xlUp).Offset(1)
    Set endCell = .Cells(Last_Row2, 4)
    .Range(startCell, endCell).value = "cell value in sheet A"
End With

答案 1 :(得分:0)

如果未包装在测试If Statement是否小于startCell.Row的{​​{1}}中,那么如果重新运行,接受的答案将引起问题,代码会将{{1} },在每次重新运行宏时,都在下一个单元格中。

您应该始终定义和分配变量。

使用Last_Row2使您不需要value from sheet A

从startCell中删除Resize可确保endCell的正确计数

Offset