【发布时间】:2016-06-30 18:29:49
【问题描述】:
我希望将 mso 主题颜色存储在一个变量中,以便图表颜色和模式可以动态变化(在这种情况下为变量 Th)。这是我当前的代码:
Dim Th As Long
Th = "msoThemeColorAccent" & ActiveCell.Offset(-5, 0)
If ActiveCell = "Realized" Then
ActiveChart.SeriesCollection(Srs).Select
With Selection.Format.Fill
.ForeColor.ObjectThemeColor = Th
.Solid
End With
With Selection.Format.Line
.ForeColor.ObjectThemeColor = Th
End With
End If
我认为这里的问题是我没有使用正确的 Dim 分类。我在这里看到了关于将 RGB 存储为变量的问题(使用 Dim Long 似乎是解决方案),但在 msoThemeColors 上还没有。谢谢,如果我可以提供任何其他详细信息,请告诉我!
【问题讨论】:
-
“我认为这里的问题是......”您的代码是否有错误?或者它只是没有像你期望的那样工作?如果出现错误,在哪一行出现什么错误?
-
对不起 - 基本上变量 Th 没有被识别。没有错误信息。它没有选择正确的 msothemecolor
-
删除
as Long,看看如果它默认为Variant会发生什么(或者,试试String)。另外,确保偏移单元格在 1 到 6 之间。 -
您将
String分配给声明为@ 的变量(Th...认真考虑给它一个有意义的名称...像素是免费的,而令人头疼的开发人员不是) 987654327@。这注定会失败。如果您想将其用作字符串,请将其声明为As String。Long是 32 位整数类型。 -
除了@Mat'sMug 的建议之外,我还认为
msoThemeColorAccent*n*实际上只是一个枚举而不是实际的字符串。您可能希望找到枚举并根据单元格值分配Long枚举值。