我试图编写一个脚本,将脚本传递给它,然后将它们写入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
这也会导致"下标超出范围"错误。
如果我将SHEET
,COLUMN
,ROW
和VALUE
变量设置为" 2"一切顺利。我得到了一个" 2"在我的电子表格中。
任何建议?
答案 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))