300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > vbs在excel中打开html文件 从命令行使用VBScript从Excel外部运行Excel宏

vbs在excel中打开html文件 从命令行使用VBScript从Excel外部运行Excel宏

时间:2021-12-20 02:36:02

相关推荐

vbs在excel中打开html文件 从命令行使用VBScript从Excel外部运行Excel宏

我试图将@Siddhart的代码改编为运行我的open_form宏的相对路径,但它似乎没有用。这是我的第一次尝试。我的工作解决方案如下。

Option Explicit

Dim xlApp, xlBook

dim fso

dim curDir

set fso = CreateObject("Scripting.FileSystemObject")

curDir = fso.GetAbsolutePathName(".")

set fso = nothing

Set xlApp = CreateObject("Excel.Application")

'~~> Change Path here

Set xlBook = xlApp.Workbooks.Open(curDir & "Excels\CLIENTES.xlsb", 0, true)

xlApp.Run "open_form"

xlBook.Close

xlApp.Quit

Set xlBook = Nothing

Set xlApp = Nothing

WScript.Echo "Finished."

编辑

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

我面临的问题:

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:

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。