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代码。非常感谢。。。第一个对我有用。。我也会尝试第二种方法。