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

现在,我正在做这个从一张纸复制一行到另一张纸,并在最后插入:

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

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

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

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

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

 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