在VBA中扩展表时,数据透视表边框失败

时间:2017-11-15 22:32:02

标签: excel vba

我使用VBA创建了一个数据透视表。这是我的代码。

 .PivotTables(1).PivotFields("Fineline").ShowDetail = False

 'Create Borders

Range("A2:K2").BorderAround Weight:=xlMedium
Range(.Range("A1"), .Range("K" & .Range("K" & Rows.Count).End(xlUp).Row)).BorderAround Weight:=xlMedium
Range(.Range("B1"), .Range("B" & .Range("B" & Rows.Count).End(xlUp).Row)).BorderAround Weight:=xlMedium
Range(.Range("C1"), .Range("E" & .Range("E" & Rows.Count).End(xlUp).Row)).BorderAround Weight:=xlMedium
Range(.Range("F1"), .Range("H" & .Range("H" & Rows.Count).End(xlUp).Row)).BorderAround Weight:=xlMedium
Range(.Range("I1"), .Range("K" & .Range("K" & Rows.Count).End(xlUp).Row)).BorderAround Weight:=xlMedium

我的数据透视表是表格形式,因此我可以打开和关闭某些标签,因此第一行代码不显示详细信息。如您所见,我想在C列到E,F到H和I到J之间创建一个边框。当我运行代码时,表格看起来应该如何。但是,当我在数据透视表中打开一个选项卡时,我的所有列现在都有一个边框。我无法弄清楚为什么边界会这样做?

谢谢,

1 个答案:

答案 0 :(得分:1)

数据透视表具有“样式”,您可以复制和修改。因此,您不需要使用VBA执行此操作,而是复制看起来像您想要的样式,并进行所需的任何更改,并且它将自动重新应用。

要执行此操作,请右键单击样式库中的样式,然后选择复制...

enter image description here

...然后为其命名,然后单击要以不同方式格式化的任何区域:

enter image description here

例如,如果要在整个数据透视表周围添加边框,请选择整个表,然后单击“格式”按钮,并从顶部的选项卡中选择边框。对话框然后应用您想要的格式:

enter image description here

然后单击“确定”关闭对话框。数据透视表在此阶段看起来仍然相同,因为在设置新样式时,尚未将其应用于此数据透视表。因此,请返回样式库,单击向下箭头,然后从自定义区域中选择新的数据透视表stlye:

enter image description here