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关掉