Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.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
Userform中图表空间的Excel VBA数组数据源_Vba_Excel - Fatal编程技术网

Userform中图表空间的Excel VBA数组数据源

Userform中图表空间的Excel VBA数组数据源,vba,excel,Vba,Excel,我尝试在ExcelUserform-Chartspace中生成条形图是否有可能使用VBA生成的数组数据作为条形图的源。我只能找到电子表格的说明作为源代码 Private Sub UserForm_Activate() Dim z As Long, s As Integer Dim cc Dim ch1 Dim pt For z = 1 To 9 For s = 1 To 2 Spreadsheet1.ActiveSheet.Cells(z, s) = Sheets("Tabelle1

我尝试在Excel
Userform
-
Chartspace
中生成条形图是否有可能使用VBA生成的数组数据作为条形图的源。我只能找到
电子表格
的说明作为源代码

Private Sub UserForm_Activate()
Dim z As Long, s As Integer
Dim cc
Dim ch1
Dim pt
For z = 1 To 9
  For s = 1 To 2
    Spreadsheet1.ActiveSheet.Cells(z, s) = Sheets("Tabelle1").Cells(z, s)
  Next
Next

Set cc = ChartSpace1.Constants
Set ChartSpace1.DataSource = Spreadsheet1  '<-- does it need linked to a spreadsheet?
Set ch1 = ChartSpace1.Charts.Add
ch1.Type = cc.chChartTypeLineMarkers
ch1.SetData 1, 0, "A2:A9"
ch1.SeriesCollection(0).SetData 2, 0, "B2:B9"
End Sub
Private子用户表单_Activate()
将z调整为长,s调整为整数
Dim cc
Dim ch1
暗pt
对于z=1到9
对于s=1到2
电子表格1.ActiveSheet.Cells(z,s)=表格(“表格1”).单元格(z,s)
下一个
下一个
设置cc=ChartSpace1.常量

设置ChartSpace1.DataSource=Spreadsheet1'也许这会建议如何执行此操作:

这个示例(稍加修改,以便我可以从上面的链接进行测试)使用文字数据数组创建了一个图表

输出示例

Sub BindChartToArrays()

    Dim asSeriesNames(1)
    Dim asCategories(7)
    Dim aiValues(7)
    Dim chConstants
    Dim chtNewChart

    Dim myChtSpace As ChartSpace

    asSeriesNames(0) = "Satisfaction Data"

    asCategories(0) = "Very Good"
    asCategories(1) = "Good"
    asCategories(2) = "N/A"
    asCategories(3) = "Average"
    asCategories(4) = "No Response"
    asCategories(5) = "Poor"
    asCategories(6) = "Very Poor"

    aiValues(0) = 10
    aiValues(1) = 22
    aiValues(2) = 6
    aiValues(3) = 31
    aiValues(4) = 5
    aiValues(5) = 14
    aiValues(6) = 12

    Set myChtSpace = UserForm1.ChartSpace1

    Set chConstants = myChtSpace.Constants

    ' Add a new chart to Chartspace1.
    Set chtNewChart = myChtSpace.Charts.Add

    ' Specify that the chart is a column chart.
    chtNewChart.Type = chConstants.chChartTypeColumnClustered

    ' Bind the chart to the arrays.
    chtNewChart.SetData chConstants.chDimSeriesNames, chConstants.chDataLiteral, asSeriesNames
    chtNewChart.SetData chConstants.chDimCategories, chConstants.chDataLiteral, asCategories
    chtNewChart.SeriesCollection(0).SetData chConstants.chDimValues, chConstants.chDataLiteral, aiValues


    UserForm1.Show

End Sub

代码示例

Sub BindChartToArrays()

    Dim asSeriesNames(1)
    Dim asCategories(7)
    Dim aiValues(7)
    Dim chConstants
    Dim chtNewChart

    Dim myChtSpace As ChartSpace

    asSeriesNames(0) = "Satisfaction Data"

    asCategories(0) = "Very Good"
    asCategories(1) = "Good"
    asCategories(2) = "N/A"
    asCategories(3) = "Average"
    asCategories(4) = "No Response"
    asCategories(5) = "Poor"
    asCategories(6) = "Very Poor"

    aiValues(0) = 10
    aiValues(1) = 22
    aiValues(2) = 6
    aiValues(3) = 31
    aiValues(4) = 5
    aiValues(5) = 14
    aiValues(6) = 12

    Set myChtSpace = UserForm1.ChartSpace1

    Set chConstants = myChtSpace.Constants

    ' Add a new chart to Chartspace1.
    Set chtNewChart = myChtSpace.Charts.Add

    ' Specify that the chart is a column chart.
    chtNewChart.Type = chConstants.chChartTypeColumnClustered

    ' Bind the chart to the arrays.
    chtNewChart.SetData chConstants.chDimSeriesNames, chConstants.chDataLiteral, asSeriesNames
    chtNewChart.SetData chConstants.chDimCategories, chConstants.chDataLiteral, asCategories
    chtNewChart.SeriesCollection(0).SetData chConstants.chDimValues, chConstants.chDataLiteral, aiValues


    UserForm1.Show

End Sub

你好,大卫,谢谢你的回答。给我点时间看看。谢谢