При выполнении следующего кода
Dim oExcel As Object 'Excel.Application
Dim oBook As Object 'Excel.Workbook
Dim oSheet As Object 'Excel.Worksheet
Dim oldCI As System.Globalization.CultureInfo = _
System.Threading.Thread.CurrentThread.CurrentCulture
System.Threading.Thread.CurrentThread.CurrentCulture = _
New System.Globalization.CultureInfo("en-US")
'Start a new workbook in Excel.
oExcel = CreateObject("Excel.Application")
oBook = oExcel.Workbooks.Add
'Add data to cells of the first worksheet in the new workbook.
oSheet = oBook.Worksheets(1)
Dim i As Integer
For i = 1 To 5
oSheet.Range("A" & CStr(i)).Value = i
oSheet.Range("B" & CStr(i)).Value = i * i
Next i
Dim oChart As Object 'Excel.Chart
oChart = oBook.Sheets.Add(Type:=-4109) 'Excel.XlSheetType.xlChart
oChart.ChartType = 74 'Excel.XlChartType.xlXYScatterLines
oChart.Location(Where:=1, Name:="function") ' Excel.XlChartLocation.xlLocationAsNewSheet
oChart.PlotArea.Interior.ColorIndex = 2
Dim s1 As Object 'Excel.Series
s1 = oChart.SeriesCollection.NewSeries()
s1.XValues = oSheet.Range("A1:A5") ' Ошибка здесь !!!!!!!!!!!!!!!!!!!!!!!
s1.Values = oSheet.Range("B1:B5")
'Save the Workbook and quit Excel.
oBook.SaveAs("c:\Book1.xls")
If Not oBook Is Nothing Then oBook.Close(False)
oExcel.Quit()
System.Threading.Thread.CurrentThread.CurrentCulture = oldCI
возникает следующая ошибка при попытке изменить данные в объекте Series:
Type mismatch. (Exception from HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))
Дело в том, что поле XValues объекта Series имеет тип System.Array, a oSheet.Range("A1:A5") имеет тип System.__ComObject . У объекта Range есть поле Value, которое возвращает массив значений. Однако код
s1.XValues = oSheet.Range("A1:A5").Value
не работает, если массив достаточно большой.