vba如何 获取 参数
vba根据时间产生报表.
我想传入两个参数:一个是日期 ,一个是"am"或者"pm"
大部分时间excel是计划任务自动运行.日期就是当天的日期,am,pm根据运行的时间来决定.
也有时候手动运行获取某天的报表,就要手动输入了.
有什么办法在启动excel 的时候传入两个参数而不用改vba?
能在命令行输入参数吗?如何输入?
在程序中如何接收输入的参数呢?
[解决办法]
看来楼主是搞不定了。
给你一个示例吧:只要调用 Sub Main() 就可以了。
Option ExplicitPublic Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)Public Declare Function GetTickCount Lib "kernel32" () As LongPublic lWaitFlag As LongSub Main() '程序入口点 Dim lTimeB&, lTimeN& Dim objTest As CommandButton frmMain.Show 0 Set objTest = frmMain.cmdOK lWaitFlag = 1 lTimeB = GetTickCount() Do If (lWaitFlag = 0) Then Exit Do If (lWaitFlag = 2) Then Exit Do DoEvents: Call Sleep(100) If (lWaitFlag = 1) Then lTimeN = GetTickCount() If (lTimeN - lTimeB > 15 * 1000) Then '设置等待时间 Unload frmMain lWaitFlag = 1: Exit Do End If If (Not (frmMain.ActiveControl Is objTest)) Then lWaitFlag = -1 End If Loop MsgBox "等待用户输入完成!", 64, "等待延时" ' 按 lWaitFlag 的值进行必要的处理 Select Case lWaitFlag Case 1: MsgBox "用户没有进行参数输入!", 48 Case 2: MsgBox "用户放弃了参数输入!", 48 Case 3: MsgBox "用户已经输入了参数!", 48 End Select End SubPublic Sub TransParams(Params() As String)' 可以在这个过程中把接收到的数据转存到' 模块级或全局中供后续指令代码使用 Dim i& For i = 0 To UBound(Params) Debug.Print i, Params(i) NextEnd Sub