excel - 如何根据条件为VBA中的excel XY散点图中的点着色?
问题描述
我正在尝试遍历具有多个系列的 xy 图表中的每个点,并根据特定的 if 条件(如果特定单元格中有值)更改颜色。
这让我发疯,因为它非常不一致(有时只是删除边界并保留填充,有时只是删除填充并保留边界)。
摘录如下。我尝试过:
'MarkerBackgroundColor = rgb(255,255,255)
'MarkerForegroundColor = rgb(255,255,255)
还尝试将其设为真然后返回假(似乎适用于.line ...)仅供参考 -If
条件有效,我已经用 msgbox 进行了测试,它在正确的时间触发(如果你关心 - 它正在阅读从第 3 行开始的空白单元格值,并从第 7 列开始,每次 i 迭代跳 4 列)。
代码如下:
Dim ws as Worksheet
Dim cht as Chart
set ws = Worksheets("Sheet 1")
Set cht = ws.ChartObjects("Chart_Name")
For i = 2 To 8
For x = 1 To cht.SeriesCollection(i).Points.Count
If ws.Cells(x + 2, i + 5 + (3 * (i - 2))).Value = "" Or ws.Cells(x + 2, i + 5 + (3 * (i - 2))).Value = " " Then
With cht.SeriesCollection(i).Points(x)
.Format.Fill.ForeColor = rgb(255, 255, 255)
.Format.Line.Visible = msoFalse
End With
Else
End If
Next x
Next i
解决方案
好的,我“修复”了它- cht.SeriesCollection(i).Points(x).MarkerStyle = -4142
(即标记类型=无)做到了。
仍然不确定为什么会发生这种情况 - 似乎Format.Fill
不是很可靠。
如果有人有解释,仍然会非常感激。
推荐阅读
- android - 如何从输入法服务更改导航栏的颜色?
- c# - 如何使用 user32.dll 将 VB 转换为 CSharp?
- sql - 如何在sql server的“from”中调用计算列
- python - 为什么导入模块会导致循环导入错误
- sql-server - 选择所有不是任何其他文件 SQL 的父文件的文件
- filenames - Inno Setup,从文件名中获取字符串
- asp.net-core-mvc - .net core 3状态码405在使用httpClient和Fiddler时响应?
- permissions - 在 Fedora 31 中,如何为 Podman 容器中运行的 nginx 设置权限?
- python - 计算大小时numpy数组中的索引太多
- javascript - 保存数据的多个变量 - 哪个具有最高值?