当我逐步浏览代码时,可以格式化数据透视表上某些行的代码可以正常工作。但是,当我将宏与其他宏一起分配给按钮时,它并没有完成成品中的格式化。结果,当我将数据透视表数据复制到新工作表时,没有正确的格式。
基本上,我正在尝试对数据透视表中的某些行进行格式化,然后将数据透视表的值和格式复制到新的工作表中,然后在其中格式化其余部分(因为对数据透视表进行格式化会大大减慢我的宏的速度)。
这是我的代码的开头:
Sub formatpt()
'formatpt Macro
Dim ws As Worksheet
Set ws = Worksheets("Pivot")
Dim pt As PivotTable
Set pt = Worksheets("Pivot").PivotTables("Dashboard")
pt.ShowTableStyleRowHeaders = False
pt.ShowDrillIndicators = False
pt.PivotSelect "Region[All]", xlLabelOnly + _
xlFirstRow, True
Selection.Interior.Color = RGB(128, 128, 128)
Selection.RowHeight = 40
Selection.Font.Bold = True
Selection.Font.Color = vbWhite
pt.PivotSelect "Desk[All]", xlLabelOnly + _
xlFirstRow, True
Selection.Interior.Color = RGB(166, 166, 166)
Selection.RowHeight = 35
Selection.Font.Bold = True
pt.PivotSelect "Style[All]", xlLabelOnly + _
xlFirstRow, True
Selection.Interior.Color = RGB(217, 217, 217)
Selection.RowHeight = 20
Selection.Font.Bold = True
Set ws2 = Worksheets("Final")
ws.Range("A1").CurrentRegion.Copy
ws2.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
ws.Range("A1").CurrentRegion.Copy
ws2.Range("A1").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
行高都不会复制,但这并不重要。但是,如果您确实知道如何跨行高度以及格式和值进行复制,请告诉我。
非常感谢您的帮助。
谢谢