请帮助我理解为什么我收到此错误以及我可以修复的代码才能正常运行。我相信它与Graphs部分有关。提前谢谢!
Sub LocationAdjust()
Dim Facility As String
On Error GoTo Errorcatch
Facility = "B1"
If Facility = Aberdeen Then
'Stoplight Ratings - Works'
Range("D53:M53").ClearContents
Range("D54:M54").ClearContents
Range("D54:M54").ClearFormats
Range("D133:M133").ClearContents
Range("D134:M134").ClearContents
Range("D134:M134").ClearFormats
Range("C230:L230").ClearContents
Range("C231:L231").ClearContents
Range("C231:L231").ClearFormats
'Statistics Tables - Works'
Range("C215:F224").ClearContents
Range("C215:F224").ClearFormats
Range("G295:J304").ClearContents
Range("G295:J304").ClearFormats
'Graphs - Need to fix'
Dim cht As Chart
Set cht = ActiveSheet.ChartObjects("Chart 3").Chart
'Remove Chart Series
cht.SeriesCollection(2).Delete
cht.SeriesCollection(3).Delete
cht.SeriesCollection(4).Delete
cht.SeriesCollection(5).Delete
cht.SeriesCollection(6).Delete
cht.SeriesCollection(7).Delete
cht.SeriesCollection(8).Delete
cht.SeriesCollection(9).Delete
cht.SeriesCollection(10).Delete
End If
End Sub
Exit Sub
Error Catch:
MsgBox Err.Description
答案 0 :(得分:0)
代码的结尾看起来应该更像这样:
Exit Sub
ErrorCatch:
MsgBox Err.Description
End Sub
End Sub
应该是最后一行。如果不是,那么之后的任何内容都不包含在例程的定义中。
答案 1 :(得分:0)
设施不能同时 B1 和 Aberdeen 。我相信你希望Range(“B1”)的文本值与字符串“Aberdeen”相比。
Facility = Range("B1").Value
If Facility = "Aberdeen" Then
不过,这将是一个区分大小写的比较。
关于SeriesCollection删除,应该另外提出一点。当你这样删除时,
'Remove Chart Series
cht.SeriesCollection(2).Delete
然后SeriesCollection(3)变为SeriesCollection(2),依此类推。您的下一步操作是,
cht.SeriesCollection(3).Delete
但这实际上是原始的SeriesCollection(4)所以你跳过了原来的SeriesCollection(3),在你遇到SeriesCollection(10)之前你将会用完SeriesCollections。试试这个,
do while cht.SeriesCollection.count > 1
cht.SeriesCollection(2).Delete
loop
这将继续删除,直到只剩下1个。