这是我的Excel VBA课程的最终项目的一部分。我创建了一个计算器应用程序,它还将方程式和结果写入 MathResults 表。我的下一个任务是获取结果并使用它们创建图表。我从下面的代码中得到的问题是下标超出了范围 Set ws = Sheets(" MathResults")。当我使用它来选择要将数据写入的工作表时,此代码工作正常。
Private Sub bttnAddChart_Click()
'variables
Dim dataRange As Range
Dim endRow As Integer
Set ws = Sheets("MathResults")
'find the end of the row
endRow = ws.Range("A:A").Find(What:="", After:=Range("A1")).Row
'set the data range
Set dataRange = ws.Range("B2:B" & endRow)
Charts.Add
With ActiveChart
.ChartType = xlColumnClustered
.Legend.Position = xlRight
.Axes(xlCategory).MinorTickMark = xlOutside
.Axes(xlValue).MinorTickMark = xlOutside
End With
End Sub
答案 0 :(得分:0)
显然,您的工作簿没有名为"MathResults"
的工作表。你想要的是创建它然后使用它。
更改
Set ws = Sheets("MathResults")
成:
Set ws = Sheets.Add
ws.Name = "MathResults"
更好的是,您可以尝试找到工作表并创建它,如果它尚未存在:
On Error Resume Next
Set ws = Sheets("MathResults")
If ws Is Nothing Then ' <~~ the sheet is not there yet, we need to create it
Set ws = Sheets.Add
ws.Name = "MathResults"
End If
On Error GoTo 0