ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3778|回复: 1

【备查】OnTime方法传递参数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-2-17 16:29 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:Application对象
Public sMsg1 As String
Public bMsg1 As Boolean
Public rngMsg1 As Range
Public iMsg1 As Integer
Public aMsg1()
Dim sMsg2 As String
Dim bMsg2 As Boolean
Dim rngMsg2 As Range
Dim iMsg2 As Integer
Dim aMsg2()
Public Sub 直接传递()
    Application.OnTime Now + TimeValue("00:00:01"), "'传递参数 ""给需要传递的字符串值加两层双引号""'"
    Application.OnTime Now + TimeValue("00:00:01"), "'传递参数 True'"
    Application.OnTime Now + TimeValue("00:00:01"), "'传递参数 Range(""a1:b2"")'"
    Application.OnTime Now + TimeValue("00:00:01"), "'传递参数 1'"
End Sub
Public Sub 传递全局变量()
    sMsg1 = "直接使用全局变量名"
    Application.OnTime Now + TimeValue("00:00:01"), "'传递参数 sMsg1'"
    bMsg1 = False
    Application.OnTime Now + TimeValue("00:00:01"), "'传递参数 bMsg1'"
    Set rngMsg1 = Range("a1:c3")
    Application.OnTime Now + TimeValue("00:00:01"), "'传递参数 rngMsg1'"
    iMsg1 = 2
    Application.OnTime Now + TimeValue("00:00:01"), "'传递参数 iMsg1'"
End Sub
Public Sub 传递模块级变量()
    sMsg2 = "使用模块名.模块级变量名"
    Application.OnTime Now + TimeValue("00:00:01"), "'传递参数 模块1.sMsg2'"
    bMsg2 = True
    Application.OnTime Now + TimeValue("00:00:01"), "'传递参数 模块1.bMsg2'"
    Set rngMsg2 = Range("a1:d4")
    Application.OnTime Now + TimeValue("00:00:01"), "'传递参数 模块1.rngMsg2'"
    iMsg2 = 3
    Application.OnTime Now + TimeValue("00:00:01"), "'传递参数 模块1.iMsg2'"
End Sub
Public Sub 传递局部变量()
    Dim sMsg3 As String
    Dim bMsg3 As Boolean
    Dim rngMsg3 As Range
    Dim iMsg3 As Integer
    sMsg3 = "给局部变量名加三层双引号"
    Application.OnTime Now + TimeValue("00:00:01"), "'局部变量 """ & sMsg3 & """'"
    bMsg3 = False
    Application.OnTime Now + TimeValue("00:00:01"), "'局部变量 """ & bMsg3 & """'"
    Set rngMsg3 = Range("a1:e5")
    Application.OnTime Now + TimeValue("00:00:01"), "'局部变量  Range(" & """" & rngMsg3.Address(0, 0) & """" & ")'"
    iMsg3 = 5
    Application.OnTime Now + TimeValue("00:00:01"), "'局部变量 """ & iMsg3 & """'"
End Sub
Public Sub 数组()
    aMsg1 = Range("a1:b5")
    Application.OnTime Now + TimeValue("00:00:01"), "'数组参数 aMsg1'"
    aMsg2 = Range("a1:b8")
    Application.OnTime Now + TimeValue("00:00:01"), "'数组参数 模块1.aMsg2'"
End Sub
调用过程
Public Sub 传递参数(ByVal varInfo As Variant)
    Select Case TypeName(varInfo)
        Case "String"
            MsgBox "传入的字符串为:" & varInfo
        Case "Boolean"
            MsgBox "传入的逻辑值为:" & varInfo
        Case "Range"
            MsgBox "传入参数的地址为:" & varInfo.Address
        Case Else
            MsgBox "传入的数值为:" & varInfo
    End Select
End Sub
Public Sub 数组参数(ByVal varInfo As Variant)
    Dim iSum As Integer
    For i = 1 To UBound(varInfo)
        For j = 1 To UBound(varInfo, 2)
            iSum = iSum + varInfo(i, j)
        Next
    Next
    MsgBox "传入参数的和为:" & iSum
End Sub
Public Sub 局部变量(ByVal varInfo As Variant)
    If IsNumeric(varInfo) = True Then
        MsgBox "传入的数值为:" & Val(varInfo)
    ElseIf TypeName(varInfo) = "Range" Then
        MsgBox "传入参数的地址为:" & varInfo.Address
    Else
        If varInfo = "False" Or varInfo = "True" Then
            MsgBox "传入的逻辑值为:" & varInfo
        Else
            MsgBox "传入的字符串为:" & varInfo
        End If
    End If
End Sub

传递参数.rar

13.69 KB, 下载次数: 54

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-3-5 20:24 | 显示全部楼层
image.png

官网说 ontime的 procedure是不能带参数的
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-3-28 22:59 , Processed in 0.042508 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表