java解析宏文件,从命令行或批处理文件运行Excel宏的方法?

@Robert:我试图用相对路径调整你的代码,并创建一个批处理文件来运行VBS .

VBS启动和关闭,但没有启动宏...任何想法问题在哪里?

Option Explicit

On Error Resume Next

ExcelMacroExample

Sub ExcelMacroExample()

Dim xlApp

Dim xlBook

Set xlApp = CreateObject("Excel.Application")

Set objFSO = CreateObject("Scripting.FileSystemObject")

strFilePath = objFSO.GetAbsolutePathName(".")

Set xlBook = xlApp.Workbooks.Open(strFilePath, "Excels\CLIENTES.xlsb") , 0, True)

xlApp.Run "open_form"

Set xlBook = Nothing

Set xlApp = Nothing

End Sub

我删除了“Application.Quit”,因为我的宏正在调用userform来处理它 .

干杯

EDIT

我实际上已经解决了这个问题,以防万一有人想要运行一个“相似”的用户表单:一个独立的应用程序:

我面临的问题:

1 - 我不想使用Workbook_Open事件,因为excel被锁定为只读 . 2 - 批处理命令受限于(据我所知)它无法调用宏的事实 .

我首先写了一个宏来启动我的userform同时隐藏应用程序:

Sub open_form()

Application.Visible = False

frmAddClient.Show vbModeless

End Sub

然后我创建了一个vbs来启动这个宏(用相对路径做这件事很棘手):

dim fso

dim curDir

dim WinScriptHost

set fso = CreateObject("Scripting.FileSystemObject")

curDir = fso.GetAbsolutePathName(".")

set fso = nothing

Set xlObj = CreateObject("Excel.application")

xlObj.Workbooks.Open curDir & "\Excels\CLIENTES.xlsb"

xlObj.Run "open_form"

我终于做了一个批处理文件来执行VBS ......

@echo off

pushd %~dp0

cscript Add_Client.vbs

请注意,我还在 Userform_QueryClose 中包含了"Set back to visible":

Private Sub cmdClose_Click()

Unload Me

End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

ThisWorkbook.Close SaveChanges:=True

Application.Visible = True

Application.Quit

End Sub

无论如何,感谢您的帮助,我希望如果有人需要,这将有所帮助

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值