3 回答
TA贡献1998条经验 获得超6个赞
我试图将@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
无论如何,感谢您的帮助,我希望如果有人需要,这将有所帮助
- 3 回答
- 0 关注
- 1110 浏览
相关问题推荐
添加回答
举报