如果在 Excel 的工作表中存贮了数据,则可以使用 GetObject 方法来获得对包含了工作表的工作簿的引用,然后使用该引用来检索其中的值。获得引用的第一步只需要提供通向workbook的路径,如下所示:
'
将这段代码放在Declarations
部分中。
Option Explicit
'
如果使用的是Office 97
,要确保'
设置一个对Microsoft Excel 8.0
对象库的引用。'
如果使用的是Office 95
,则要设置'
一个对Microsoft Excel 5.0
对象库的引用,同时应该将
'
变量声明为WorkSheet
。Dim wkbObj As WorkBook '
声明一个对象变量。Private Sub Form_Load()
'
然后用GetObject
方法设置对象。Set wkbObj = GetObject _
("C:\My Documents\MySpread.xls")
End Sub
注意 为了使用 Excel 对象,必须设置对 Excel 对象库的引用。为此,可以单击 “工程”菜单,然后单击“首选”。找到 Excel 对象库并双击它。最后单击“确定”。同样地,应该注意如果和 Excel 5.0对象库一起使用 GetObject,那么必须将变量声明为WorkSheet;如果使用的是 Excel 8.0 对象库,应该将变量声明为 WorkBook 。
在设置了对 Excel 对象库的引用后,就可以在 Excel 对象模型中使用这个引用,用工作表中的数据充填数组。为此可以结合Value 属性来使用 Range 方法,以便获得电子数据表中任何一个单元的数据。
Dim arrPrices (1 to 7) Dim i As Integer For i = 1 to 7 '
使用工作表中B
列的七个
'
值来填充数组。.
arrPrices(i) = wkbObj.Worksheets(1) _
.Range("B" & i + 1).Value
Next i
如果不熟悉 Excel 电子数据表,下面这些图形将显示数据的来源。
典型的 Excel 电子数据表
电子数据表的布局,以及所使用的对其中单元的引用方法,都很容易和 MSChart 控件中对数据点的引用方法对应起来。例如,电子数据表中的一“列”(如同前面例子中提到的 B 列)对应于 MSChart 中的一“列”。如果创建的是多系列的图表,则每一列对应一个系列。同样,电子数据表中的一“行”对应于 MSChart 中一“列”里的一“行”。因此,可以将图表想象成电子数据表来设计。
例如,正如一开始可以通过增加数组维数创建多系列的图表,现在可以使用工作表中的一列或多列来填充数组。换句话说,要创建多系列的图表,可以用数字填写电子数据表的两列(或更多列),然后使用这些列来填充数组,就象下面的代码所做的这样:
Dim arrData (1 to 7, 1 to 2) Dim i As Integer For i = 1 to 7 ' A
列的值填充了数组的'
第一个系列。如果这些值是字符串
'
那么将成为行的标签。
arrData(i, 1) = wkbObj.Worksheets(1) _
.Range("A" & i + 1).Value
' B
列的值填充第二个系列。arrData(i, 2) = wkbObj.Worksheets(1) _
.Range("B" & i + 1).Value
Next i
提示 可以使用 CurrentRegion 属性返回 Excel 列中的行数。然后可以利用这个数指定数组第一维的上界。
前面的代码,与上图中的电子数据表结合起来使用,将生成一个每行以一周中相应一天为标签的图表。