我正在创建一个生成条形图的宏。我在两台计算机上运行此代码。它在一台计算机上运行良好。另一个生成一个"这个对象没有标题"错误。
问题是,它上面的一行声明它有一个。如果我上升一行并在声明处重新启动代码,它会继续正常。它甚至创建了另外2个图表,就像它使用相同的代码(从这个具有微妙重命名的粘贴的副本)一样,只是为其他列中的类似数据而零售,并且没有错误。
我能想到的最好的权宜之计是进行错误检查并将其重新启动以重新运行,但这并不能解释行为。
有问题的部分如下所示:
WsDBar.HasTitle = True
WsDBar.ChartTitle.Text = "Phase-A Error Breakdown"
有关为什么/如何无法更新以获得标题以及如何解决该问题的想法?
使用更多代码进行编辑:
WsDBar.ChartType = xlColumnClustered
WsDBar.SetSourceData Source:=DBarData
For i = 1 To 5
If WsDBar.FullSeriesCollection.Count < 5 Then WsDBar.SeriesCollection.NewSeries
If WsDBar.FullSeriesCollection.Count > 5 Then WsDBar.SeriesCollection(6).Delete
WsDBar.FullSeriesCollection(i).name = WsCD.Cells(2, i + 8).Value
WsDBar.FullSeriesCollection(i).Values = WsCD.Range(WsCD.Cells(3, i + 8), WsCD.Cells(RowCountCD, i + 8))
WsDBar.FullSeriesCollection(i).XValues = WsCD.Range("A3:A" & RowCountCD)
WsDBar.FullSeriesCollection(i).Interior.ColorIndex = (i + 41)
Next
我所做的就是将破碎的区域变成这样:
ReloopD:
On Error Resume Next
WsDBar.HasTitle = True
If WsDBar.HasTitle = False Then
LoopCount = LoopCount + 1
If LoopCount > 100 Then Stop
GoTo ReloopD
End If
WsDBar.ChartTitle.Text = "Phase-A Error Breakdown"
'y-axis name
WsDBar.Axes(xlValue, xlPrimary).HasTitle = True
If WsDBar.Axes(xlValue, xlPrimary).HasTitle = False Then
LoopCount = LoopCount + 1
If LoopCount > 100 Then Stop
GoTo ReloopD
End If
WsDBar.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "# of Items"
我需要尝试我给出的其他选项。谢谢!
答案 0 :(得分:0)
试试这个:
WsDBar.ChartTitle.Caption = "Phase-A System Error Breakdown"
而不是
WsDBar.ChartTitle.Text= "Phase-A System Error Breakdown"
答案 1 :(得分:0)
有时候VBA在尝试下一次操作之前没有完成一次操作。它可能已经开始添加标题,但也许标题的文本框还没有准备接受任何内容,所以第二行崩溃。
您可以插入 column1 a1 amount currency a3 column3 column4
0 a 1 20 USD 57.0 10 11
1 a 4 50 USD NaN 10 11
2 a 7 80 USD NaN 10 11
3 b 13 140 USD NaN 16 17
4 b 2 50 USD NaN 16 17
5 b 3 90 USD NaN 16 17
6 c 8 75 USD NaN 11 12
7 c 9 90 USD 98.0 11 12
8 c 6 10 USD NaN 11 12
,告诉VBA等到Windows处理了它负责的所有内容。
pd.read_json()
修改:有时候一个DoEvents
还不够。以下循环遍历违规语句,直到错误发生:
WsDBar.HasTitle = True
DoEvents
WsDBar.ChartTitle.Text = "Phase-A System Error Breakdown"