Excel 在vba图表中设置答案选项和答案

Excel 在vba图表中设置答案选项和答案,excel,charts,vba,Excel,Charts,Vba,我正在使用vba创建图表。为此,我使用以下代码: Function CreateChart(start, finish, chartPos) As Integer Dim objChart As ChartObject Dim myChtRange As Range Dim myDataRange As Range Dim seri As Series With Application.ActiveWorkbook.Sheets("Charts") ' What

我正在使用vba创建图表。为此,我使用以下代码:

Function CreateChart(start, finish, chartPos) As Integer
    Dim objChart As ChartObject
  Dim myChtRange As Range
  Dim myDataRange As Range
  Dim seri As Series
  With Application.ActiveWorkbook.Sheets("Charts")

    ' What range should chart cover
    'Set myChtRange = Application.InputBox( _
        prompt:="Select a range where the chart should appear.", _
        Title:="Select Chart Position", Type:=8)
    ' What range contains data for chart
    Set myChtRange = Application.ActiveWorkbook.Sheets("Charts").Range("A" & chartPos & ":F" & chartPos + 19)
    'Set myDataRange = Application.InputBox( _
        prompt:="Select a range containing the chart data.", _
        Title:="Select Chart Data", Type:=8)
    Set myDataRange = Application.ActiveWorkbook.Sheets("Consolidation").Range("A" & start - 1 & ":B" & finish - 1)
    ' Cover chart range with chart
    Set objChart = .ChartObjects.Add( _
        Left:=myChtRange.Left, Top:=myChtRange.Top, _
        Width:=myChtRange.Width, Height:=myChtRange.Height)
    ' Put all the right stuff in the chart
    With objChart.Chart
        .ChartArea.AutoScaleFont = False
        .ChartType = xlColumnClustered
        .SetSourceData myDataRange
        .HasTitle = True
        .ChartTitle.Characters.text = Application.ActiveWorkbook.Sheets("Consolidation").Range("B" & start - 1).Value
        .ChartTitle.Font.Bold = True
        .ChartTitle.Font.Size = 18
    End With
    If Not cType = "Round" Then
        objChart.Chart.Legend.Delete
    End If
    If cType = "Points" Then
        objChart.Chart.ApplyDataLabels xlDataLabelsShowLabel
    End If
    Set seri = objChart.Chart.SeriesCollection(1)
    If Not cType = "Points" Then
        seri.HasDataLabels = True
    End If
  End With
  CreateChart = chartPos + 25
End Function
“start”和“finish”是表开始和结束的行,在大多数情况下,它们总是有两列(A,值和B,多少次)。例如,该表给出了以下图表:

但是,如果可能的值是一个数字,则会使其出错,如本例所示:


它将可能的答案作为结果。如果找到方法将其更改为行为正确,请单击右按钮并选择ChartType,但不使用vba,我想使用vba进行更正。有什么办法吗?

您能把它改成字符串“1”、“2”等吗? 我不知道这会如何影响你的图表,因为我不经常使用它们

.NumberFormat=“@”