复制行的内容和格式(到另一个工作表)

7
我想要的是将一整行的内容和格式复制到另一个工作表中。
目前我只能将旧单元格的内容设置为新单元格的内容,这样做只会复制内容而不是格式。(我的单元格有不同的颜色需要保留)
目前我使用以下代码:(对于同一工作表中的单元格可以正常工作)
Range(Cells(45, 2), Cells(45, 3)).Copy Range(Cells(50, 2), Cells(50, 3))

然而,我正在尝试将它从一个工作表复制到另一个工作表(从“Front_Page”复制到“vg”)。我尝试使用以下代码,显然它并不起作用,但能否有人告诉我我错在哪里?

Range.Worksheet("Front_Page").Range(Cells(45, 2), Cells(45, 3)).Copy Worksheet("vg").Range(Cells(50, 2), Cells(50, 3))
2个回答

1

看起来你正在尝试将“Front_Pages”中的单元格复制到“vg”,因为你在“range”内使用了“cells”。

范围(cells ...)。

如果是这样,你可以将单元格格式简单更改为Excel通用范围;尝试这段代码:

Sheets("vg").Range("B5") = Sheets("Front_Pages").Range("B4")
Sheets("vg").Range("C5") = Sheets("Front_Pages").Range("C4")

0

Cells 指的是活动工作表中的单元格。因此,您会收到错误:vg 不是活动工作表。将另一个工作表的单元格指定为 Range 对象的参数始终会导致错误。以下方法可行:

Worksheets("Front_Page").Range(Worksheets("Front_Page").Cells(45, 2), Worksheets("Front_Page").Cells(45, 3)).Copy Worksheets("vg").Range(Worksheets("vg").Cells(50, 2), Worksheets("vg").Cells(50, 3))

然而,它可以被优化为:

Worksheets("Front_Page").Range("B45:C45").Copy Worksheets("vg").Range("B50:C50")

此外,请注意Worksheet("vg")无法正常工作,应该用Worksheets("vg")替换它,否则也会导致错误。
要复制整行,请使用:
Worksheets("Front_Page").Rows("45:45").Copy Worksheets("vg").Rows("50:50")

你也可以使用Sheets("sheetName")。 - peege

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接