Excel vba,将系列类型从一行更改为一个区域,再更改为另一个区域,无法修改行属性
动态更改图表配置 混合了直线和面积系列类型的组合图。 VBA代码根据工作表中的计算表更改每个系列的类型 类模块以访问系列属性和操作它们的方法。 目前,只需从下拉列表中选择图表类型,然后使用工作表上的更改事件来解析每个图表,并依次更改每个图表上的属性 心房肌改变:Excel vba,将系列类型从一行更改为一个区域,再更改为另一个区域,无法修改行属性,vba,excel,charts,Vba,Excel,Charts,动态更改图表配置 混合了直线和面积系列类型的组合图。 VBA代码根据工作表中的计算表更改每个系列的类型 类模块以访问系列属性和操作它们的方法。 目前,只需从下拉列表中选择图表类型,然后使用工作表上的更改事件来解析每个图表,并依次更改每个图表上的属性 心房肌改变: series Type (xlArea,xlLine) series Format.Line.Forecolor.RGB Format.Fill.Forecolor.RGB (Long: colours
series Type (xlArea,xlLine)
series Format.Line.Forecolor.RGB
Format.Fill.Forecolor.RGB
(Long: colours based cell.Interior.Color)
series Format.Line.Width (Single)
series Format.Fill.Transparency
Format.Line.Transparency (Double: 0 to 1)
series Pattern for area Type
seriesname.Format.Fill.Patterned if required (MsoPatternType)
seriesname.Format.Fill.Solid if not required
问题陈述
对于我的图表类型1,系列2是XLline,对于图表类型2,它是XLarea
我已经使用图表类型1运行了好几个星期,动态地改变了颜色、透明度和图表可见性
系列值和X值是命名范围,动态指向适当的向量(范围对象)
我现在介绍图表类型2
当我切换到图表类型2并返回到图表类型1时,我无法再设置线条颜色、透明度或宽度设置
我在excel应用程序中有一些组合图表,我想根据用户输入动态更改这些图表。我已经成功地做到了这一点,所有的工作都很好,直到我尝试为一种模式将系列类型从一行动态更改为一个区域,然后根据需要再次更改为原始配置
行为
如果我手动选择有问题的系列并打开“格式”对话框并稍微更改透明度设置(只需轻轻移离零即可),则重量和颜色设置将跳回原始设置,并且可以再次通过VBA进行更改
我也可以通过在行选项中选择“no Line”(无行)来实现同样的效果,再次手动执行。当我点击No Line时,它只会闪烁一秒钟,但保持实线设置。如果我第二次单击“无行”,它会像您所期望的那样消失
它就像是通过手动轻推格式设置来释放某些内容
我有一种感觉,这与边界和一些遗留问题有关。就像这条线在它作为一个区域的生命结束后有了边界一样,它再也不一样了。我认为从一个区域变换后得到的线对象可能是野餐后的几个三明治。。。
我认为它必须默认为2003类型的format对象,但我不知道如何管理它
我正在windows 7上使用excel 2013
我检查了该行是否设置为可见,我还注意到,与图表上另一行(未转换为原始类型)上的true相比,有问题的行上的Format.Fill.visible是msoFalse
我一直在使用类模块管理所有图表,包括:
Property Let sType(SeriesType As Long)
With CurrChart.SeriesCollection(Indx)
.Type = SeriesType
End With
End Property
Public Sub noMarkers()
With CurrChart.SeriesCollection(Indx)
.MarkerStyle = xlMarkerStyleNone
End With
End Sub
Property Let LineWeight(w)
With CurrChart.SeriesCollection(Indx)
.Format.Line.Weight = w
End With
End Property
Property Let LineVisible(v)
With CurrChart.SeriesCollection(Indx)
.Format.Line.Visible = v
End With
End Property
如上所述,在我做出这一点之前,一切都进展得相当顺利。
我确信我在做一些愚蠢的事情,所以我希望有人能提出一个前进的方向
如果有人有枚举序列对象的代码,这将有助于我将序列中有效和无效的差异制成表格并进行比较
如果您有任何建议,我们将不胜感激。5小时睡眠能为您带来的好处真是太神奇了 问题是由于在还原为XLline类型时未正确设置series.Border和series.Format.Line.Visible属性造成的 我关闭了区域模式的线路可见性,而在恢复到线路时没有重新打开。当恢复到线型时,我还必须设置series.Border.LineStyle=xlNone(XLHairline也可以)。边框已打开,这是更改为XLArea类型的副作用 我看到的线条是系列边框,它位于实际线条的顶部并使其模糊。因此,当我修改基础行的属性时,没有可见的更改 导致问题的边框属性未记录在MSDN的联机文档中,并且在VBE中可用对象的下拉列表中不可见。 我想这是一个需要解决的遗留难题