Я искал ответ на этот вопрос как в Google, так и здесь, без каких-либо успехов. Если это было задано раньше, я извинился.
Я пытаюсь автоматизировать некоторые задачи администрирования с помощью VBScript. Цель этого сценария - взять статистику использования из текстового файла (с текстовыми и числовыми столбцами) и сделать линейную диаграмму из данных. Создание файла excel и загрузка данных прекрасны, но у меня возникают проблемы с созданием диаграммы: я не понимаю, как выбрать исходные данные, и я продолжаю работать с синтаксическими ошибками. В Интернете есть много информации о том, как это сделать в VBA, и это видно из записанного макроса. Но я просто не могу это сделать с VBScript. Вот мой код (некоторые имена файлов и т. Д. Были изменены для соображений неприкосновенности):
Set objFSO = CreateObject("Scripting.FileSystemObject")
' Create an instance of Excel (keep program hidden) and open text data file
Set objExcel = CreateObject("Excel.Application")
With objExcel
.Visible = False
.WorkBooks.OpenText("Datafile.txt")
End With
' Name the current worksheet
Set objWorksheet = objExcel.Worksheets(1)
' Name constants for use in chart creation
xlLine = 4
xlPrimary = 1
xlCategory = 1
xlValue = 2
xlColumns = 3
' Define chart properties
Set objChart = objExcel.Charts.Add()
With objExcel.ActiveChart
.ChartType = 1
.HasTitle = True
.ChartTitle.Characters.Text = "usage"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Time"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "units"
.ChartType = xlLine
.HasLegend = False
.SetSourceData Source:="objWorksheet".Range("B2:B10"), Plotby:=xlColumns
End With
Используя этот код, мне удалось создать файл excel с данными, упорядоченными в столбцах, и отдельным листом с пустая диаграмма в нем (имеющая указанные свойства).
Но строка «.SetSourceData» дает мне ошибки. Я просто не знаю, как использовать его в VBScript. Я очень новичок в VBScript, поэтому, пожалуйста, простите любые ошибки в синтаксисе или понимании кода. Может быть, я делаю что-то принципиально неправильно?
edit
Я использую Excel 2003.
Приветствия.