VBA:Excel如何复制包括格式和间距

时间:2014-02-28 14:34:01

标签: excel vba

现在,我这样做是为了将一行从一张纸复制到另一张纸并在最后插入:

            Sheets("Monthly").Range("A1").EntireRow.Copy Destination:= _
            Sheets(Name).Range("A" & rows.Count).End(xlUp).Offset(1)

但是这不会复制任何格式/单元格间距。这可以在vba中做到吗?

2 个答案:

答案 0 :(得分:4)

Copy会复制格式。也许你的格式不是你的想法。我不知道单元格间距是什么意思,但如果它是列宽,那么Copy将不会复制它。你必须明确地设置它,比如

For i = 1 to rSrce.Cells.Count
    rDest.Cells(i).EntireColumn.ColumnWidth = rSrce.Cells(1).EntireColumn.ColumnWidth
Next i

答案 1 :(得分:1)

使用宏录制器将为您提供其他格式的语法。

Range("A1").NumberFormat = "General"

.PasteSpecial Paste:=xlPasteFormats
.PasteSpecial Paste:=xlPasteValues

实施例。一种解决方法

Sub Copy()
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")

  ws.Range("A1").EntireColumn.Copy

    With ws.Range("G2").EntireColumn
        .PasteSpecial Paste:=xlPasteFormats
        .PasteSpecial Paste:=xlPasteValues
    End With

End Sub

有一百万种方法可以尝试

https://www.google.com/search?q=how+to+copy+formatting+in+excel+with+vba&oq=how+to+co&aqs=chrome.0.69i59l2j69i57j69i59j69i60j0.2240j0j7&sourceid=chrome&espv=210&es_sm=93&ie=UTF-8