将数组从Java传递到VBScript

时间:2015-04-20 12:24:30

标签: excel vbscript

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

将单个变量传递给VBSCript
Runtime.getRuntime().exec("wscript openChartsDevice.vbs " + fileName + " " + range);

但是当我传递一个String数组时,它表示类型不匹配。我正在抓住传入的数组

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工作表转换为图表。 我想通过参数提供范围,所以我想要上面的公式工作。我经常搜索,找不到明确的方法。谢谢。

2 个答案:

答案 0 :(得分:0)

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

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

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

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


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

答案 1 :(得分:-2)

我不懂JScript。但是进入VBScript的方法也是一样的。

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

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

请参阅此文章,您的问题标题暗示您感兴趣。

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