将数组从Java传递到VBScript

我有两个问题:
1.如果我们可以使用java将数组传递给VBSCript。 我可以使用以下命令将单个variables传递给VBSCript

Runtime.getRuntime().exec("wscript openChartsDevice.vbs " + fileName + " " + range); 

但是,当我通过一个string数组,它说types不匹配。 我正在捕捉传入的数组

 Dim arr() 

有什么build议么?

编辑1以下问题已被回答
2.我正在使用以下Vbscript在Excel中创build图表

  Dim oExl,excelPath,objWriteSheet,objWriteWorkbook Dim oMychartProcs Set oExl=CreateObject("Excel.Application") Set objWriteWorkbook = oExl.Workbooks.Open("SomeExcelfile.xlsx") Set objWriteSheet = objWriteWorkbook.Worksheets(1) Set oMychartProcs = objWriteWorkbook.Charts.Add oMychartProcs.SetSourceData objWriteSheet.Range(Cells(2,1),Cells(7,6)) oMychartProcs.ChartType = 4 oMychartProcs.Name = "ChartName" oMychartProcs.Activate 

我给出的范围为A2:F7。 当我进入

 oMychartProcs.SetSourceData objWriteSheet.Range("A2:F7") 

图表创build完美,但是当我使用

  Range(Cells(2,1),Cells(7,6)) 

整个Excel表格被转换为图表。 我想通过参数提供范围,所以我想上面的公式工作。 我search了很多,找不到一个明确的方法。 谢谢。

您不能将数组作为对象传递。 但是您可以将其元素作为stringparameter passing给vbscript函数,并使用空格作为分隔符。

 openChartsDevice.vbs " + fileName + " " + arg[0] + " " + arg[1] + " " + arg[2]..... 

你可以在java中创build一个方法来传递一个数组并返回一个string

arg[0] + " " + arg[1] + " " + arg[2].....


另一种方法:用input参数创build一个文件。 更新您的VBScript引用该input文件来获取参数,而不是查找命令行参数。

我不知道JScript。 但是获得VBScript的方法是一样的。

 For Each thing in Array() A = A & thing & " " Next 

你实际上是问如何把一个数组变成一个分隔的string而不是一个VBScript数组。

看到你的问题标题暗示你感兴趣的这篇文章。

http://blogs.msdn.com/b/ericlippert/archive/2003/09/22/53061.aspx