编写传递给Excel文件的脚本参数

时间:2016-02-02 11:58:07

标签: excel vbscript arguments

我试图编写一个脚本,将脚本传递给它,然后将它们写入Excel文件。我有四个变量,一个用于表格,行,列和值。为简单起见,我使用命令提示符进行测试,并传递一系列的两个,所以在第2页,第2行,B列,写" 2"。

Dim DCRT '(0)=Day/Sheet, (1)=Column, (2)=Row, (3)=Time
Set DCRT = WScript.Arguments

Set objExcel = CreateObject("Excel.Application")
objexcel.Workbooks.Open("C:\temp\test.xlsx")
objexcel.Visible = True
objExcel.Sheets(DCRT(0)).Cells(DCRT(1), DCRT(2)).Value = DCRT(3)

我得到的错误是

  

(7,2)Microsoft VBScript运行时错误:下标超出范围"

如果我回应这些论点,我会回到2 2 2 2,所以我知道它已经过去了。

为了试图解决这个问题,我想出了

Dim SHEET, COLUMN, ROW, VALUE
SHEET = DCRT(0)
COLUMN = DCRT(1)
ROW = DCRT(2)
VALUE = DCRT(3)

objExcel.sheets(SHEET).Cells(COLUMN, ROW).Value = VALUE

这也会导致"下标超出范围"错误。

如果我将SHEETCOLUMNROWVALUE变量设置为" 2"一切顺利。我得到了一个" 2"在我的电子表格中。

任何建议?

1 个答案:

答案 0 :(得分:0)

我现在无法访问Excel,但我怀疑问题是由类型冲突引起的。 Arguments元素是字符串,但如果要按索引而不是名称访问集合项,则应为整数。

更改

objExcel.sheets(DCRT(0)).Cells(DCRT(1), DCRT(2)).Value = DCRT(3)

objExcel.sheets(CLng(DCRT(0))).Cells(CLng(DCRT(1)), CLng(DCRT(2))).Value = CLng(DCRT(3))