将数组从 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 以引用该输入文件来获取参数,而不是查找命令行参数。
我有两个问题:
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 以引用该输入文件来获取参数,而不是查找命令行参数。