2015-04-20 38 views
1

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

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

但是当我通过一个String数组,它说类型不匹配。我正在赶上阵列

Dim arr() 

有什么建议吗? F7:下面的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

编辑1以下问题已经回答了
2.我使用。当我输入

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

图表被完全创建,但是当我使用

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

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

+0

您应该使用objWriteSheet.cells(x,y)。 – Steven

+0

它的工作..谢谢你.. – shrikul

+0

你的第一个问题不清楚给我。你用什么代码传递字符串数组?在执行VBS时,你也不应该对你传入的变量进行某种形式的定界吗? – Steven

回答

0

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

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

您可以将Java创建一个方法传递一个数组,并返回一个字符串

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


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

+0

非常感谢你...第一个为我工作..也会尝试第二种方法。 – shrikul

-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

+0

不回答问题并包含无效的VBScript代码。 –