VBA数据透视表代码在逐步执行时有效,但在分配给宏按钮时无效

时间:2018-11-22 16:37:58

标签: excel vba excel-vba formatting pivot-table

当我逐步浏览代码时,可以格式化数据透视表上某些行的代码可以正常工作。但是,当我将宏与其他宏一起分配给按钮时,它并没有完成成品中的格式化。结果,当我将数据透视表数据复制到新工作表时,没有正确的格式。

基本上,我正在尝试对数据透视表中的某些行进行格式化,然后将数据透视表的值和格式复制到新的工作表中,然后在其中格式化其余部分(因为对数据透视表进行格式化会大大减慢我的宏的速度)。

这是我的代码的开头:

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

行高都不会复制,但这并不重要。但是,如果您确实知道如何跨行高度以及格式和值进行复制,请告诉我。

非常感谢您的帮助。

谢谢

0 个答案:

没有答案