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

时间:2012-02-05 22:54:04

标签: excel vba excel-vba formatting

我想要的是将整行的内容和格式复制到另一张表。

目前我不得不满足于将旧单元格内容设置为新单元格内容,并且这样做只会复制内容而不是格式化。 (我的细胞有不同的颜色需要携带)

目前我有以下内容:(这适用于同一张纸中的单元格)

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 个答案:

答案 0 :(得分:1)

看起来你试图复制来自" Front_Pages" to" vg"因为你使用" cells"里面"范围"

范围(单元格......)。

如果是这样,您只需将单元格格式更改为excel一般范围;试试这段代码:

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

答案 1 :(得分: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")