打开Excel工作簿并在应用程序服务器VM内执行ActiveX命令按钮
我不是一个优秀的程序员(但我想成为一个优秀的程序员),我想知道是否有人有编写VBScript来打开Excel工作簿(在应用服务器VM中)并执行ActiveX命令按钮(例如commandbutton_Click())的经验 我一路打开Excel工作簿,但一直在执行ActiveX命令按钮打开Excel工作簿并在应用程序服务器VM内执行ActiveX命令按钮,excel,vbscript,vba,Excel,Vbscript,Vba,我不是一个优秀的程序员(但我想成为一个优秀的程序员),我想知道是否有人有编写VBScript来打开Excel工作簿(在应用服务器VM中)并执行ActiveX命令按钮(例如commandbutton_Click())的经验 我一路打开Excel工作簿,但一直在执行ActiveX命令按钮 Option Explicit 'Dim pc, iMsg, iConf, Flds Dim szHostName Dim objExcel Set objExcel = Wscript.CreateO
Option Explicit
'Dim pc, iMsg, iConf, Flds
Dim szHostName
Dim objExcel
Set objExcel = Wscript.CreateObject("Wscript.Shell")
'get the computer name
szHostName = objExcel.ExpandEnvironmentStrings( "%COMPUTERNAME%" )
Call Test1()
Call SendAlertEmail(szHostName, "john.doe@corp.com", "test alert <no-reply@corp.com","Test E-mail Subject", "Test e-mail body")
objExcel.ActiveWorkbook.Close
objExcel.DisplayAlerts = False
objExcel.Application.Quit
'objExcel.DisplayAlerts = False
WScript.Echo "Finished."
WScript.Quit
'====================================================================================================
Public Sub Test1()
Dim objWorkbook
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("E:\testfolder\test.xlsm", 0, False)
objExcel.Application.Visible = True
objExcel.Application.Run "test.xlsm!Summary.cmdCycle_Click()"
End Sub
'/////////////////////////////////////////////
' --------------------------------------------------------------------------------- SendAlertEmail routine--------------------------------Start
Public Sub SendAlertEmail(ByVal servername, ByVal tostr, ByVal fromstr, ByVal subjectstr, ByVal bodystr)
Dim pc, iMsg, iConf, Flds
Set pc = CreateObject("Wscript.Network")
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields
Const schema = "http://schemas.microsoft.com/cdo/configuration/"
Dim emailBody
Flds.Item(schema & "sendusing") = 2
Flds.Item(schema & "smtpserver") = "relay.exelonds.com"
Flds.Item(schema & "smtpserverport") = 25
Flds.Item(schema & "smtpauthenticate") = 0
Flds.Item(schema & "smtpusessl") = 0
Flds.Update()
With iMsg
.To = tostr
.From = fromstr
.Subject = servername & ":" & subjectstr
emailBody = bodystr
.HTMLBody = emailBody
.Sender = "Morning Report <noreply@corp.com>"
.Organization = "ABC Corporation"
.ReplyTo = "noreply@corp.com"
.Configuration = iConf
.Send()
End With
' Release Interfaces
Set iMsg = Nothing
Set iConf = Nothing
Set Flds = Nothing
End Sub
选项显式
“Dim pc、iMsg、iConf、Flds
Dim-szHostName
暗盒
Set objExcel=Wscript.CreateObject(“Wscript.Shell”)
'获取计算机名
szHostName=objExcel.ExpandEnvironmentStrings(“%COMPUTERNAME%”)
调用Test1()
打电话给SendAlertEmail(szHostName),约翰。doe@corp.com“,”测试警报我认为这应该有效:
Dim sheetName$
sheetName = "Name of your worksheet" '# MODIFY THIS LINE
xlBook.Application.run "'" & xlBook.Name & "'!" & sheetName & ".cmdCycle_Click"
vbscript!=vba。是哪一个?我收到一条错误消息,上面写着:“无法运行宏。”"Morning Reprt.xlsm'!Summary.cmdCycle_Click'。该宏可能在此工作簿中不可用,或者可能已禁用所有宏。当我在VM中正常打开工作簿并执行命令按钮时,它工作正常,因此我知道该宏存在,但脚本认为不存在。仅供参考,我正在用VBScript,n编写此代码在我的工作簿中单击ActiveX命令按钮宏。