Код сводной таблицы VBA работает при пошаговом выполнении, но не при назначении кнопке макроса - PullRequest
0 голосов
/ 22 ноября 2018

Мой код, который форматирует определенные строки в моей сводной таблице, работает, когда я шаг за шагом выполняю код.Однако, когда я назначил макрос кнопке с другими макросами, он не завершил форматирование в готовом продукте.В результате, когда я скопировал данные сводной таблицы на новый лист, правильное форматирование отсутствовало.

В основном я пытаюсь отформатировать определенные строки в сводной таблице, а затем скопировать значения иотформатируйте сводную таблицу на новый лист и отформатируйте остальные там (поскольку форматирование сводной таблицы значительно замедляет мой макрос).

Вот начало моего кода:

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

Высота строк тоже не копируется, но это менее важно.Но если вы знаете, как копировать по высоте строки, а также по форматированию и значениям, то, пожалуйста, дайте мне знать.

Любая помощь очень ценится.

Спасибо

...