Excel 在VBA中展开表时,透视表边框失败

Excel 在VBA中展开表时,透视表边框失败,excel,vba,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:=xl

我用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)周围创建一个边框。当我运行代码时,该表看起来应该是这样的。但是,当我在透视表中打开一个选项卡时,我的所有列现在都有一个边框围绕它。我不明白边界为什么要这么做

谢谢


G

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

要执行此操作,请在样式库中的样式上单击鼠标右键,然后选择“复制…”:

…然后为其命名,然后单击要以不同格式设置的任何区域:

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

然后单击“确定”关闭对话框。在此阶段,数据透视表的外观仍将保持不变,因为虽然您已设置了新样式,但尚未将其应用于此数据透视表。因此,返回样式库,单击向下箭头,然后从自定义区域选择新的数据透视表stlye:


我不明白边界为什么要这样做?-因为这正是Excel所做的:如果透视表布局不是最终的,那么如果调整它,您将丢失任何fancypants边框。当您手动使用Excel时,它会这样做;VBA代码没有理由做任何不同的事情。完成布局,然后设置边框。FWIW实际上有20种内置格式,带有花哨的边框和阴影,内置,通过布局修改保存。为什么不使用它来代替手工绘制的边框呢?当我手工制作透视表,然后放入边框时,它就工作了。我不知道为什么会出现这种情况。我如何完成布局?这是如何格式化数据透视表的。任何其他事情都会导致疯狂+1\