excel - 在 Excel (VBA) 中仅选择 X 误差线
问题描述
我正在尝试在 VBA for Excel 中格式化错误栏。当我录制宏并单击错误栏时,我将其作为输出:
ActiveChart.FullSeriesCollection(8).ErrorBars.Select
事情是,当我需要 X 误差条时,它默认为 Y 误差条。这是可行的吗?
解决方案
这是 VBA 对象模型中的一个严重弱点。X 和 Y 误差条不能使用ChartFormat
语法单独选择或单独格式化。如果您使用ChartFormat
语法来格式化ErrorBars
,例如
ActiveChart.SeriesCollection(1).ErrorBars.Format.Line.ForeColor.RGB = RGB(255, 0, 0)
你只会格式化水平误差线(见下面的注释)。
您可以使用一些古老的 Excel 4 宏 (XLM) 来解决 VBA 选择问题:
ExecuteExcel4Macro ("Select(""S1EX"")") ' Select series 1 X error bars
ExecuteExcel4Macro ("Select(""S1EY"")") ' Select series 1 Y error bars
啊哈!所以选择 X 错误栏,并对其进行格式化:
Selection.ErrorBars.Format.Line.ForeColor.RGB = RGB(255, 0, 0)
伟大的!现在选择 Y 误差条并重复。但是 Y 误差条没有改变。事实上,如果你按照相反的顺序进行操作,首先选择 Y 误差线,尽管选择了 Y 误差线,上述行仍将格式化 X 误差线(另请参阅下面的注释)。
注意- 我说代码只格式化 X 误差线而不是 Y 误差线。它真正格式化的是添加到图表中的第一组误差线,我在 Y 之前添加了 X。当我反转这个并在 X 之前添加 Y 时,只是第一个误差线被格式化,这次是 Y .
解决方法 1
将 X 误差线添加到系列中,并对其进行格式化。然后复制该系列,但如果需要将其隐藏,并将 Y 误差线添加到该系列并以不同的格式设置它们。
解决方法 2
X 和 Y 误差线的格式相同,使用旧Border
语法:
ActiveChart.SeriesCollection(1).ErrorBars.Border.Color = RGB(255, 0, 0)
这对于线条颜色是可以的,但其他线条格式不太灵活。例如,对于线宽,您必须在xlHairline
、xlThin
、xlMedium
和中进行选择xlThick
。
推荐阅读
- javascript - 检查是否设置了最小宽度
- javascript - 类型上不存在属性“长度”... mysql2 模块中的 OkPacket
- vuejs2 - 如何在 Vue 中包含本地脚本文件
- xamarin - Xamarin.Forms:主从菜单/汉堡包按钮的不良行为
- reactjs - Umbraco 8 + React - 如何访问图像
- react-native - 我需要使用导航抽屉刷新同一页面
- docker - Service Mesh(如 Istio)vs Even Driven 微服务架构
- intellij-idea - 使用 Intellij IDEA REPL 的环运行 compojure
- c# - 无法使用 SqlDataReader.GetColumnSchema()
- javascript - 用户成功登录后删除场景