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”,因为对象/属性不支持他的方法(当我尝试在上面和同一行上添加它时)。有什么建议吗?:/我是编程新手,所以我可能忽略了一些东西