Excel 将数组从Java传递到VBScript

Excel 将数组从Java传递到VBScript,excel,vbscript,Excel,Vbscript,我有两个问题: 1.如果我们可以使用java将数组传递给VBSCript。我可以使用以下命令将单个变量传递给VBSCript Runtime.getRuntime().exec("wscript openChartsDevice.vbs " + fileName + " " + range); 但当我传递一个字符串数组时,它表示类型不匹配。我正在捕获传入的数组 Dim arr() 有什么建议吗 编辑1以下问题已得到回答 2.我正在使用以下Vbscript在excel中创建图表 Dim

我有两个问题:
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))
整个excel工作表转换为图表。
我想通过参数提供范围,所以我希望上面的公式能起作用。我找了很多,但找不到一个确定的方法。谢谢。

我不知道JScript。但是进入VBScript的方法是一样的

For Each thing in Array()
    A = A & thing & " "
Next
实际上,您正在询问如何将数组转换为分隔字符串,而不是vbscript数组

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


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

openChartsDevice.vbs " + fileName + " " + arg[0] + " " + arg[1] + " " + arg[2].....
您可以在java中创建一个方法来传递数组并返回字符串

arg[0]+“”+arg[1]+“”+arg[2]



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

您应该使用objWriteSheet.cells(x,y)。它有效。。谢谢你……你的第一个问题我不清楚。您使用什么代码传递字符串数组?在执行VBS时,您不应该对传入的变量进行某种形式的定界吗?我正在创建一个字符串数组,并尝试pas到VBScript文件,并捕获变量中的参数,如Dim var=Wscript.Argument(0),这与捕获数组的方式相同。我问的是这是否可能。这是可能的,但您可能会遇到问题,具体取决于数据大小,因为命令行参数实际上并不适用于大量数据。您需要将数组转换为带分隔符的字符串(序列化),然后在vbscript中反序列化数组。不回答此问题,并且包含无效的vbscript代码。非常感谢。。。第一个对我有用。。我也会尝试第二种方法。