读书人

java如何调用excel中的vb宏函数用于

发布时间: 2014-01-17 00:06:00 作者: rapoo

java怎么调用excel中的vb宏函数,用于excel转换格式和添加一些表头。
java中可以调用excel中的vb宏函数吗?最好给出代码参考。
宏.xla用于excel转换格式和添加一些表头。
下面是我编写excel中的vb代码:
打开自定义窗体call函数:InAndOut。



Sub CallUserForm11()
UserForm1.Show
End Sub

Sub InAndOut()
Dim response
Dim currentwindow

currentwindow = ActiveWindow.Caption
response = MsgBox("需要转换的是:<" + currentwindow + ">。", vbOKCancel)
If response = 1 Then
Rows("1:1").Select
Selection.Delete Shift:=xlUp
Workbooks.Open Filename:="D:\出入库导入标准模板.xls"
Windows("出入库导入标准模板.xls").Activate
Rows("1:6").Select
Selection.Copy
Windows(currentwindow).Activate
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False
ActiveSheet.UsedRange.Select
Selection.NumberFormatLocal = "G/通用格式"
ActiveWorkbook.Save
MsgBox ("数据转换完成!")

Else
Exit Sub
End If

End Sub

[解决办法]
一、编写vbs文件
test.vbs文件中vb代码如下:
dim args
set args = wscript.arguments
Dim objXL
Set objXL = CreateObject("Excel.Application")
With objXL
.Workbooks.Open (args(0))
.Application.Run "InAndOut"
.ActiveWorkbook.Save
.Workbooks.Close
.Application.Quit
End With
Set objXL = Nothing
解释: args(0)是接收下表为0的参数,也就是第一个参数
.Application.Run "InAndOut"的InAndOut是excel文件中宏的名称

二、java调用vb
Runtime.getRuntime().exec("cmd /c start f:/test.vbs f:/test.xls")
解释: 运行f盘下test.vbs文件,参数为f盘test.xls,在vb文件中.Workbooks.Open (args(0))读取的args(0)则是test.xls。
[解决办法]
我写的是f:/test.vbs和f:/test.xls,你的test.vbs和test.xls放在哪个路径,这里就替换一下
360是误杀,你把360关掉

读书人网 >J2SE开发

热点推荐