如何使用表格上的按钮和工作表上的数据创建包含柱形图的图表工作表

时间:2016-12-06 21:39:38

标签: excel vba excel-vba

这是我的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

1 个答案:

答案 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