我正在尝试确定对象的.Format.Shadow.Type
是什么(本例中为ChartArea)。问题是,一旦你修改了ShadowFormat的另一个属性,.Type
就会返回-2,这是一个msoShadowType,意思是msoShadowMixed。
此项目的一个方面是从一个图表(Chart1)复制图表元素,并将它们应用到不同的图表(Chart2)
With Chart1.ChartArea.Format.shadow
Sheet1.Cells(1, 2).Value = .Visible
Sheet1.Cells(2, 2).Value = .Style
Sheet1.Cells(3, 2).Value = .Type
Sheet1.Cells(4, 2).Value = .ForeColor.RGB
Sheet1.Cells(5, 2).Value = .Transparency
Sheet1.Cells(6, 2).Value = .Size
Sheet1.Cells(7, 2).Value = .Blur
Sheet1.Cells(8, 2).Value = .OffsetX
Sheet1.Cells(9, 2).Value = .OffsetY
End With
您将在下面的示例中看到将这些设置应用回另一个图表时会发生什么。上面示例中的我的Chart1具有原始类型Chart1.ChartArea.Format.Shadow.Type = 21
,但如果我修改了一个属性,例如大小Chart1.ChartArea.Format.Shadow.Size = 101
,则原始现在返回.Type = -2
。
这是一个问题,因为如果您将上面捕获的每个值应用到另一个图表,则两个阴影将不相等。这是因为Chart1有一个基本预设然后被更改。我相信在选择.Type
后会应用ShadowFormat设置。
此处Chart1的设置应用于Chart2。值得注意的是,Chart2没有选择.Type
。在下面的代码中应用阴影之前没有阴影。
With Chart2.ChartArea.Format.shadow
.Visible = Sheet1.Cells(1, 2).Value
.Style = Sheet1.Cells(2, 2).Value
.Type = Sheet1.Cells(3, 2).Value
.ForeColor.RGB = Sheet1.Cells(4, 2).Value
.Transparency = Sheet1.Cells(5, 2).Value
.Size = Sheet1.Cells(6, 2).Value
.Blur = Sheet1.Cells(7, 2).Value
.OffsetX = Sheet1.Cells(8, 2).Value
.OffsetY = Sheet1.Cells(9, 2).Value
End With
这是两个图表在更改之前的样子。例如,Chart1具有非常明确的阴影。请注意,我首先将预设的.Type = 21
应用于Chart1,然后修改其他属性:.Transparency = 0, .Size = 101, .Blur = 0, .OffsetX = 4,.OffsetY = 4
您可以看到阴影不相等。如果我要替换Sheet1.Cells(3,2).Value = 21
中的值而不是从Chart1中取出的-2,我们会得到两个看起来像这样的图表:
最后,我问是否有这个问题。我想知道是否有原始预设,或者在将一个对象的ShadowFormat复制到另一个对象时如何将预设考虑在内。
希望我提供了足够的信息。谢谢