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

use*_*630 7 excel formatting vba excel-vba

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

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

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

Range(Cells(45, 2), Cells(45, 3)).Copy Range(Cells(50, 2), Cells(50, 3))
Run Code Online (Sandbox Code Playgroud)

但是,我正试图从一张纸到另一张纸.(从工作表'Front_Page'复制到'vg').我尝试使用以下,显然它不起作用,但有人可以请告诉我,我做错了什么?

Range.Worksheet("Front_Page").Range(Cells(45, 2), Cells(45, 3)).Copy Worksheet("vg").Range(Cells(50, 2), Cells(50, 3))
Run Code Online (Sandbox Code Playgroud)

Dan*_*ela 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))
Run Code Online (Sandbox Code Playgroud)

但是,它可以优化为:

Worksheets("Front_Page").Range("B45:C45").Copy Worksheets("vg").Range("B50:C50")
Run Code Online (Sandbox Code Playgroud)

另外,请注意,它Worksheet("vg")不起作用,应该替换Worksheets("vg")否则也会导致错误。

要复制整行,请使用:

Worksheets("Front_Page").Rows("45:45").Copy Worksheets("vg").Rows("50:50")
Run Code Online (Sandbox Code Playgroud)