Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何自动生成图表?_Excel_Vba_Excel Charts - Fatal编程技术网

Excel 如何自动生成图表?

Excel 如何自动生成图表?,excel,vba,excel-charts,Excel,Vba,Excel Charts,我需要生成一个格式如下的图表。 使用从1月到12月的不同月份(x轴)到该月份内发生的次数(y轴),使用以下数据。 数据格式为“月,日,年”,但其原始数据写为“年-月-日” 我尝试了下面的代码来生成一个图表,但是 1) 它创建一个新工作表并在新工作表中生成图形。我需要它在现有的表中 2) 如上图所示,没有生成数据,只是一张空白图表 Sub GenerateChart() Dim NumMonthChart As Chart Set NumMonthChart = Charts.Add

我需要生成一个格式如下的图表。

使用从1月到12月的不同月份(x轴)到该月份内发生的次数(y轴),使用以下数据。

  • 数据格式为“月,日,年”,但其原始数据写为“年-月-日”
我尝试了下面的代码来生成一个图表,但是

1) 它创建一个新工作表并在新工作表中生成图形。我需要它在现有的表中

2) 如上图所示,没有生成数据,只是一张空白图表

Sub GenerateChart()

Dim NumMonthChart As Chart
Set NumMonthChart = Charts.Add

With NumMonthChart
    .SetSourceData Source:=Sheets("Control").Range("H2:H100")
    .ChartType = xlColumnClustered
    .HasTitle = True
    .ChartTitle.Text = "Number of errors in a month"
    .Axes(xlCategory, xlPrimary).HasTitle = True
    .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Month"
    .Axes(xlValue, xlPrimary).HasTitle = True
    .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Number Of Errors"
End With

End Sub

我想从我的数组中获取数据,例如月份,数据总是输入到新的工作表中,因此不会有工作表的确切名称。

请尝试以下方法:

Sub GenerateChart()

' You can add Shape type chart if you want to place a chart within a sheet
Dim NumMonthChart As Object
Set NumMonthChart = ActiveSheet.Shapes.AddChart

With NumMonthChart.Chart
    .SetSourceData Source:=Range("Control!H2:H100")
    .ChartType = xlColumnClustered
    .FullSeriesCollection(1).XValues = "=Control!$H$2:$H$100"
    ' Specify your range for Y Values
    .FullSeriesCollection(1).Values = "=Control!$F$2:$F$100"  
    .HasTitle = True
    .ChartTitle.Text = "Number of errors in a month"
    .Axes(xlCategory, xlPrimary).HasTitle = True
    .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Month"
    .Axes(xlValue, xlPrimary).HasTitle = True
    .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Number Of Errors"
End With

End Sub

您好,谢谢您的回答,但是图表仍然没有出现。您的范围正确吗?所有数据都在“控制”工作表中吗?嗨,对不起,实际上我想从我的数组中获取数据,例如月份,数据总是在新的工作表中生成,因此不会有工作表的确切名称…也许更好的解决方案是在调用此方法时将工作表的名称作为参数传递,例如
Sub-GenerateChart(srcSheet作为工作表)
然后
.FullSeriesCollection(1).XValues=“=”&srcSheet.Name&“!$H$2:$H$100”