Excel从工作表中的数据创建图表非常方便。如果要直接从VBA创建图表而不使用工作表中的任何数据怎么办?您可以通过“欺骗” Excel使其认为它正在使用工作表中的信息,然后提供自己的信息来做到这一点。

以下宏说明了此概念:

Sub MakeChart()

'Add a new chart     Charts.Add

'Set the dummy data range for the chart     ActiveChart.SetSourceData Sheets("Sheet1").Range("a1:d4"), _       PlotBy:=xlColumns

'Manually set the values for the data series     ActiveChart.SeriesCollection(1).Formula = _       "=SERIES(""First Data"",{""a"",""b"",""c"",""d""},{2,3,4,5},1)"

ActiveChart.SeriesCollection(2).Formula = _       "=SERIES(""Second Data"",{""a"",""b"",""c"",""d""},{6,7,8,9},2)"

ActiveChart.SeriesCollection(3).Formula = _       "=SERIES(""Third Data"",{""a"",""b"",""c"",""d""},{10,11,12,13},3)"

End Sub

此示例中的注释说明了每个步骤的操作。

设置虚拟数据范围时,SetSourceData方法假定范围位于名为Sheet1的工作表上。如果工作簿中没有这样的工作表,则需要相应地更改命令。

以后,当手动设置数据系列的值时,SERIES命令用于指定该系列的标签(第一数据,第二数据和第三数据),类别标签的数组(a,b,c和d)在所有系列中),该系列的值的数组以及一个数字,指定该数字代表哪个系列号。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(2622)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: