Excel 条形图
我在一张纸上有一些条形图,希望这些条形图的厚度相同。有链接到图表的切片器,因此每次更改选择时,输入会不断更改,使条形图变厚或变薄Excel 条形图,excel,vba,charts,Excel,Vba,Charts,我在一张纸上有一些条形图,希望这些条形图的厚度相同。有链接到图表的切片器,因此每次更改选择时,输入会不断更改,使条形图变厚或变薄 有人能帮我一个代码,使图表中的条形图保持相同的厚度吗?我不介意酒吧之间的距离。我在互联网上搜索过,但找不到任何真正的解决方案。我认为这将解决您的问题: Sub SetBarWitdh() Dim sh As Shape Dim ch As Chart Dim ws As Worksheet Set ws = Sheets("SheetNameHere") 'P
有人能帮我一个代码,使图表中的条形图保持相同的厚度吗?我不介意酒吧之间的距离。我在互联网上搜索过,但找不到任何真正的解决方案。我认为这将解决您的问题:
Sub SetBarWitdh()
Dim sh As Shape
Dim ch As Chart
Dim ws As Worksheet
Set ws = Sheets("SheetNameHere") 'Put the name of the sheet where the charts are
stored
For Each sh In ws.Shapes 'This will loop through all the shapes in that sheet
If sh.Type = msoChart Then Set ch = sh.Chart 'If you only have charts on the Sheet _
you can type only the set instrunction
ch.ChartGroups(1).GapWidth = 120 'You can change the number of the property _
to better suit you, you'll have to test untill _
you find it
Next
End Sub
一般来说,在宏录制器打开的情况下,手动执行您想要执行的操作。生成的代码应该扔掉——但只有在您注意到Excel对象模型中可以在条形图中找到条形图厚度的位置之后。图表的对象模型有点复杂,所以当我需要在VBA中处理图表时,我经常会这样做。您好,谢谢您的回答。我想我快到了。除了固定间隙宽度,是否也可以固定棒材宽度?并非所有图表都包含相同数量的条形图,并且希望看到所有条形图都是相同的。嗨@Ryan,据我所知,不可能按属性进行更改,因为属性会根据间隙宽度和图表大小调整条形图的宽度。GapWidth属性用于按条形图簇的百分比调整条形图的大小(请参见此处的文档:)。考虑到所有图表都具有相同的大小,您可以做的是计算每个图表上的条形数,然后使用选择案例根据找到的数字设置间隙宽度,这样您就可以“标准化”图表。