我在不同的工作表中有几张表,希望在另一张表中进行编译,但是在粘贴格式时遇到了麻烦。 我当前的代码是:
Sub Compiler()
Dim wbRaw As Workbook
Set wbRaw = ThisWorkbook
Dim wsCompiled As Worksheet
Set wsCompiled = wbRaw.Sheets("ALL PROGRAMMES COMPILED")
Dim wsACF As Worksheet
Set wsACF = wbRaw.Sheets("ACF")
Dim wsASPIRE As Worksheet
Set wsASPIRE = wbRaw.Sheets("ASPIRE")
Application.ScreenUpdating = False
wsCompiled.Cells.ClearContents
wsACF.Cells(1, 1).CurrentRegion.Copy
With wsCompiled
.Range("A1").PasteSpecial xlPasteFormats
.Range("A1").PasteSpecial xlPasteValues
End With
Application.CutCopyMode = False
wsASPIRE.Cells(1, 1).CurrentRegion.Offset(1).Copy
With wsCompiled
.Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteFormats
.Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
End With
Application.CutCopyMode = False
End Sub
第一个表以正确的格式正确粘贴,但是下一个表仅粘贴值,没有格式。
如果我从复制行中删除了偏移量:
wsASPIRE.Cells(1, 1).CurrentRegion.Copy
格式粘贴很好,但是其中包括第二个表中的标头,这些标头弄乱了已编译的数据。
任何人都可以解释为什么会发生这种情况,以及如何解决这个问题的任何建议吗?
答案 0 :(得分:0)
我还没有找出表格的格式没有粘贴的原因,但是我通过遍历每个工作表中的表格然后将其取消列出来解决了该问题。
Sub LoopTables()
Dim tbl As ListObject
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
For Each tbl In ws.ListObjects
tbl.Unlist
Next tbl
Next ws
End Sub