如何在excel vba中复制格式化?

如何在excel vba中复制格式化?,excel,vba,Excel,Vba,当我使用VBA复制我需要的大部分内容时,请遵循。除了列的宽度和行的高度之外,我怎样才能将其包括在内呢?我正在使用这个代码: Set wk = ThisWorkbook Dim template As String template = Sheets("Data").Range("EU12").Value wk.Sheets("Data").Range("A1:BA1000").Copy wk.Sheets(template).Range("A1") 我尝试了这一点(当然没有“当然”,但这会

当我使用VBA复制我需要的大部分内容时,请遵循。除了列的宽度和行的高度之外,我怎样才能将其包括在内呢?我正在使用这个代码:

Set wk = ThisWorkbook
Dim template As String

template = Sheets("Data").Range("EU12").Value

wk.Sheets("Data").Range("A1:BA1000").Copy wk.Sheets(template).Range("A1")
我尝试了这一点(当然没有“当然”,但这会给我一个400错误消息:

'Columns("A:BA").Select
 '   Selection.Copy
  '  Sheets("jan 20").Select
  '  Columns("A:BA").Select
  '  Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
  '      SkipBlanks:=False, Transpose:=False
  '  Application.CutCopyMode = False

也许你可以试试这样的东西
xlPasteColumnWidths

根据
XlPasteType=xlPasteColumnWidths
时的文档,仅粘贴复制范围的列宽

TheRangeThatYouWantToCopy.Copy
TheRangeWhereYouWantToPaste.Parent.Activate
TheRangeWhereYouWantToPaste.PasteSpecial xlPasteColumnWidths
TheRangeWhereYouWantToPaste.PasteSpecial xlPasteFormats
Application.CutCopyMode = False
希望这有帮助,请不要犹豫给我留下反馈,这样我可以改进这个答案

也许您可以尝试接收这样的行:

ActiveSheet.UsedRange.Rows.Autofit


您是否尝试录制宏以执行此操作?阅读第二段代码也会让您受益匪浅,我尝试的是录制宏。我会看看这是否有帮助!@Nick您是否尝试使用其他
XlPasteType
正如我建议您添加如何包含行高,我尝试只添加另一行,但更改了行高“columnwidth”改为“rowheigts”,但收到一条错误消息!(结果表明,我并不需要该函数)@尼克,因为
rowheigts
不是
XlPasteType
@尼克,如果你现在不使用它,我可以请你接受这个回答事件吗?谢谢,你会这样做来包括rowheigts吗?我可能需要它。可能使用
xlPasteAllUsingSourceTheme
Rows("1:50").RowHeight = 25