Excel 跳过该行,但当我跨过该行时,该行将起作用

Excel 跳过该行,但当我跨过该行时,该行将起作用,excel,vba,Excel,Vba,我创建了这个宏,它跳过了这一行: .ChartGroups(1).GapWidth = 30 如果我单步执行宏,它就会工作 我尝试在多个位置添加行,我尝试添加延迟。似乎什么都没用 宏为每行的3个输入自动生成条形图 Sub CreateCharts() Dim cht As ChartObject Dim SA_Row, erow As Integer Dim Graph_Position As Variant SA_Row = 5 Graph_Posi

我创建了这个宏,它跳过了这一行:

.ChartGroups(1).GapWidth = 30
如果我单步执行宏,它就会工作

我尝试在多个位置添加行,我尝试添加延迟。似乎什么都没用

宏为每行的3个输入自动生成条形图

Sub CreateCharts()
    Dim cht As ChartObject
    Dim SA_Row, erow As Integer
    Dim Graph_Position As Variant

    SA_Row = 5
    Graph_Position = 79.5
    erow = Worksheets("Graphs").UsedRange.Rows.count

    For count = 5 To erow

        Select Case Cells(SA_Row, 6)

        Case Is <> ""

            Set cht = Worksheets("Graphs").ChartObjects.Add(Top:=Graph_Position, Left:=910, Width:=160, Height:=75)

            Set rng1 = Range(Cells(SA_Row, 6), Cells(SA_Row, 7))
            Set rng2 = Union(Cells(SA_Row, 8), rng1)
            cht.Chart.SetSourceData Source:=rng2

            With cht.Chart
                .HasAxis(xlValue) = False
                .HasAxis(xlCategory) = False
                .Axes(xlValue).MajorGridlines.Delete
                .HasLegend = False
                .ChartGroups(1).GapWidth = 30
                .FullSeriesCollection(1).Points(1).Format.Fill.ForeColor.RGB = RGB(0, 204, 226)
                .FullSeriesCollection(1).Points(2).Format.Fill.ForeColor.RGB = RGB(192, 0, 0)
                .FullSeriesCollection(1).Points(3).Format.Fill.ForeColor.RGB = RGB(51, 204, 51)
                .ApplyDataLabels
                .PlotArea.Height = 65
                .ChartArea.Border.LineStyle = xlNone
            End With

            SA_Row = SA_Row + 2
            Graph_Position = Graph_Position + 80

        Case Is = ""
            SA_Row = SA_Row + 2
            Graph_Position = Graph_Position + 26

    End Select

    Next count

End Sub
子CreateCharts()
作为图表对象的Dim cht
Dim SAU行,erow为整数
Dim Graph_位置作为变量
SA_Row=5
图_位置=79.5
erow=工作表(“图形”).UsedRange.Rows.count
对于计数=5到erow
选择案例单元格(第6行)
案例为“”
设置cht=工作表(“图形”).ChartObjects.Add(顶部:=图形位置,左侧:=910,宽度:=160,高度:=75)
设置rng1=范围(单元格(第6行)和单元格(第7行))
设置rng2=并集(单元格(第8行),rng1)
cht.Chart.SetSourceData源:=rng2
有红隧图
.HasAxis(xlValue)=False
.HasAxis(xlCategory)=错误
.Axes(xlValue).MajorGridlines.Delete
.HasLegend=False
.图表组(1).间隙宽度=30
.FullSeriesCollection(1).Points(1).Format.Fill.ForeColor.RGB=RGB(0,204,226)
.FullSeriesCollection(1).点(2).Format.Fill.ForeColor.RGB=RGB(192,0,0)
.FullSeriesCollection(1).点(3).Format.Fill.ForeColor.RGB=RGB(51204,51)
.ApplyDataLabels
.PlotArea.Height=65
.ChartArea.Border.LineStyle=xlNone
以
SA_行=SA_行+2
图形位置=图形位置+80
Case Is=“”
SA_行=SA_行+2
图形位置=图形位置+26
结束选择
下一次计数
端接头
DoEvents不起作用


我无法添加“.ChartGroups(1).Select”,因为对象/属性不支持他的方法。我尝试将其添加到上面和同一行。

在该行之后添加
DoEvents()
。并使用特定的工作表限定所有范围/单元格调用-不要依赖活动工作表。有一些事情,特别是我多年来在Excel和PowerPoint图表中观察到的,这似乎只有在您首先选择对象时才会成功。这当然违背了一般规则,即避免依赖
选择
激活
,但似乎有一些奇怪的事情需要它,即使
事件
或等待循环都不可靠。因此,如果所有其他操作都失败,请尝试
图表组(1)。选择
,然后选择
图表组(1)。GapWidth=30
。非常感谢!我会继续更新代码,看看什么是有效的。我会让你知道它是如何运行的。“doevents”很不幸没有工作,我无法添加“.ChartGroups(1).Select”,因为对象/属性不支持他的方法(当我尝试在上面和同一行上添加它时)。有什么建议吗?:/我是编程新手,所以我可能忽略了此处的某些内容。请在该行之后添加
DoEvents()
。并使用特定的工作表限定所有范围/单元格调用-不要依赖活动工作表。有一些事情,特别是我多年来在Excel和PowerPoint图表中观察到的,这似乎只有在您首先选择对象时才会成功。这当然违背了一般规则,即避免依赖
选择
激活
,但似乎有一些奇怪的事情需要它,即使
事件
或等待循环都不可靠。因此,如果所有其他操作都失败,请尝试
图表组(1)。选择
,然后选择
图表组(1)。GapWidth=30
。非常感谢!我会继续更新代码,看看什么是有效的。我会让你知道它是如何运行的。“doevents”很不幸没有工作,我无法添加“.ChartGroups(1).Select”,因为对象/属性不支持他的方法(当我尝试在上面和同一行上添加它时)。有什么建议吗?:/我是编程新手,所以我可能忽略了一些东西