将数组从 Java 传递到 VBScript

Passing array from Java to VBScript

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

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

但是当我传递一个字符串数组时,它说类型不匹配。我正在捕获传入的数组

Dim arr()

有什么建议吗?

编辑 1 已回答以下问题
2. 我正在使用以下 Vbscript 在 excel

中创建图表
    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")

图表制作完美,但当我使用

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

整个excelsheet转换为图表。 我想通过参数提供范围,所以我希望上面的公式起作用。我已经搜索了很多,但找不到确定的方法。谢谢。

我不懂 JScript。但是在 VBScript 中的获取方式是一样的。

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

您实际上是在问如何将数组转换为定界字符串而不是 vbscript 数组。

查看您的问题标题表明您感兴趣的这篇文章。

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

您不能将数组作为对象传递。但是您可以将其元素作为字符串参数传递给 vbscript 函数,并使用 space 作为分隔符。

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

您可以在 java 中创建一个方法来传递数组和 return 字符串

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


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