Constantin77, приветствую.
В общем, на основе кода из первого поста:
spXL.Worksheets(1).Range(spXL.Worksheets(1).Cells(1,2),spXL.Worksheets(1).Cells(1,4)).SparklineGroups.Add Type:=xlSparkLine,SourceData:=spXL.Worksheets(1).Range(spXL.Worksheets(1).Cells(6,2), spXL.Worksheets(1).Cells(154,4))
Вот, примерно так у меня получилось.
2 варианта: создание новой книги Excel или открытие существующей.
Const xlSparkLine = 1 ' VBS не знает о константах VBA
Set spXL = CreateObject("Excel.Application") ' создаём новый экземпляр Excel...
Set spWorkBook = spXL.Workbooks.Add ' ...1) в нём создаём новую книгу
'Set spWorkBook = spXL.Workbooks.Open("D:\Test_SparkLine.xlsx") ' ...2) или в нём открываем нужную книгу, требуется полный путь
Set spWorkSheet = spWorkBook.Worksheets(1) ' ...в книге работаем с Лист1
With spWorkSheet
' Немного ещё разгрузим код от длинных строк:
Set rDest = .Range(.Cells(1,2), .Cells(1,4))
Set rSource = .Range(.Cells(6,2), .Cells(154,4))
rSource.FormulaR1C1Local = "=R[-1]C + 1" ' заполним хоть какими-то значениями (если книга новая)
' VBS не знает об именованных параметрах методов VBA:
rDest.SparklineGroups.Add xlSparkLine, rSource.Address ' в VBA: Type:=xlSparkLine, SourceData:=.Range(.Cells(6,2), .Cells(154,4)).Address
End With
' Открытый программой Excel будет невидимым, откроем его пользователю:
spXL.Visible = True
' Либо, если нужно закрыть Excel программой:
'spWorkBook.Save True ' закрыть книгу с сохранением
'spXL.Quit ' закрыть Excel
' Для полного выхода - не забываем все Set-переменные "уничтожать", т.к. Excel может остаться в памяти.
'Set spXL = Nothing
'Set spWorkBook = Nothing
'Set spWorkSheet = Nothing
'Set rDest = Nothing
'Set rSource = Nothing