VBA 图表表格式 - 仅在从图表内部启动时才有效

问题描述

我有一个子问题,它正确地将格式分配给图表工作表 - 但只有在图表可见时才启动。否则,它仅应用所示的大约 10 个格式化步骤中的最后一个

详情: 我有一个工作簿,它由散布在文件中的几十个可见数据表(以及一些不可见数据表)和几个可见的图表表(仅包含图表的表)组成。我想为每个可见的数据表和图表分配某些格式。出于这个原因,我创建了一个子来格式化工作表,另一个 - 用于图表。这些由通用子调用,它检查工作簿中每个工作表的名称,根据它从图形中区分数据表。

这是启动另外两个的通用子

Sub Total_update()
    Dim Shtnm As String
    For i = 1 To ActiveWorkbook.Sheets.Count
        Shtnm = ActiveWorkbook.Sheets(i).Name
        If Left(ActiveWorkbook.Sheets(i).Name,1) = "P" Then
            Call Number_update(Shtnm)
        ElseIf Right(ActiveWorkbook.Sheets(i).Name,1) = ")" Then
            Call Chart_update(Shtnm)
        End If
    Next i
End Sub

Number_update 子程序完美无缺。
这是有问题的chart_update sub

Sub Chart_update(Shtnm As String)   

Dim iTested As Integer

iShapes = ActiveSheet.Shapes.Count
iTested = 0

Charts(Shtnm).Activate

ActiveChart.Axes(xlCategory).Format.Line.ForeColor.RGB = RGB(0,0)  
ActiveChart.Axes(xlCategory).Format.Line.ForeColor.RGB = RGB(1,1,1)  

'(several other formatting commands in For loops)

iTested = 2

ActiveChart.SeriesCollection(1).Select                                      
For k = 1 To iTested
    ActiveChart.SeriesCollection(1).Points(k).Select                        
    Selection.Format.Fill.ForeColor.RGB = RGB(3,3,3)    'Recoloring certain points only from the 1st series
Next k

ActiveChart.SeriesCollection(2).Select                    'Selecting 2nd series
Selection.Format.Fill.ForeColor.RGB = RGB(4,4,4)  
End Sub

即使从图表表外部启动,也只执行最后一条命令。所有其他的都需要从给定的图表表手动 Alt+F8 子启动

请让我知道我在这里遗漏了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)