vba怎么 获取 参数
vba如何 获取 参数
vba根据时间产生报表.
我想传入两个参数:一个是日期 ,一个是"am"或者"pm"
大部分时间excel是计划任务自动运行.日期就是当天的日期,am,pm根据运行的时间来决定.
也有时候手动运行获取某天的报表,就要手动输入了.
有什么办法在启动excel 的时候传入两个参数而不用改vba?
能在命令行输入参数吗?如何输入?
在程序中如何接收输入的参数呢?
------解决方案--------------------
看来楼主是搞不定了。
给你一个示例吧:只要调用 Sub Main() 就可以了。
vba根据时间产生报表.
我想传入两个参数:一个是日期 ,一个是"am"或者"pm"
大部分时间excel是计划任务自动运行.日期就是当天的日期,am,pm根据运行的时间来决定.
也有时候手动运行获取某天的报表,就要手动输入了.
有什么办法在启动excel 的时候传入两个参数而不用改vba?
能在命令行输入参数吗?如何输入?
在程序中如何接收输入的参数呢?
------解决方案--------------------
看来楼主是搞不定了。
给你一个示例吧:只要调用 Sub Main() 就可以了。
- VB code
Option Explicit Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Public Declare Function GetTickCount Lib "kernel32" () As Long Public lWaitFlag As Long Sub 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 Sub Public Sub TransParams(Params() As String) ' 可以在这个过程中把接收到的数据转存到 ' 模块级或全局中供后续指令代码使用 Dim i& For i = 0 To UBound(Params) Debug.Print i, Params(i) Next End Sub