我在谷歌和这里都搜索过这个问题的答案,没有任何成功。如果之前有人问过,那么我道歉了。
我正在尝试使用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很新,所以请原谅语法错误或理解代码。也许我在做一些根本错误的事情?
修改的
我正在使用Excel 2003。
干杯。
答案 0 :(得分:2)
如info section标记vbscript中所述,您无法在VBScript中使用命名参数。此外,您将变量名称objWorksheet
放在双引号中。这将使它成为文字字符串“objWorksheet”而不是保存工作表对象的变量。改变行
.SetSourceData Source:="objWorksheet".Range("B2:B10"), Plotby:=xlColumns
到此:
.SetSourceData objWorksheet.Range("B2:B10"), xlColumns
更一般地说,您应该使用Const
关键字来定义常量:
Const xlLine = 4
Const xlPrimary = 1
Const xlCategory = 1
Const xlValue = 2
Const xlColumns = 3
否则它们将成为常规(可变)变量。