gpt4 book ai didi

vba - Application.OnTime 的多个变量参数

转载 作者:行者123 更新时间:2023-12-02 04:17:14 26 4
gpt4 key购买 nike

我正在开发 Excel 2010 的数据采集前端。我无法弄清楚将多个局部变量参数传递给 Application.OnTime 的语法。

http://markrowlinson.co.uk/articles.php?id=10为单个变量作为参数提供了一个很好的例子,但是如何将其推断为多个变量的解释对我来说并不清楚。

有人对传递多个局部变量参数时 "' 字符的正确嵌套有简洁的解释吗?

编辑:代码示例如下: Application.OnTime Now + TimeSerial(0, 0, 5), "'runScheduledReport """& iArg1 & "",""& iArg2 & """"& iArg3 & """"'"。我知道我们在字符串中使用双引号作为转义字符,但无法真正弄清楚所传递的字符串的顺序。

最佳答案

您必须考虑以下限制:

  • 您要调用的宏必须驻留在模块中。当您想从另一个工作簿调用它时,它必须是公开的。
  • 您不能像使用函数或带参数的子函数那样使用方括号来调用宏。使用括号时 Excel 会提示宏不存在
  • 我没有尝试使用函数,但无论如何没有人可以使用返回值,因此将您的方法定义为子方法。
  • 必须使用撇号来封装宏名称
  • 您必须使用引号来封装字符串和日期值,可以使用 chr$(34) (让我想起过去的时光),也可以只是将引号加倍
  • 你可以传递不带引号的整数,我没有尝试过 Double
  • 用逗号分隔参数
  • 参数的顺序必须与方法中参数的顺序匹配

查找附件代码:

Option Explicit

Sub Test()
Dim strTest1 As String
Dim strTest2 As String

strTest1 = "This is test1"
strTest2 = "This is test2"

Application.OnTime Now + TimeSerial(0, 0, 1), "'CallMeOnTime """ & strTest1 & """,""" & strTest2 & "'"
Application.OnTime Now + TimeSerial(0, 0, 1), "'CallMeOnTime " & Chr$(34) & "Test" & Chr$(34) & "," & Chr$(34) & "Test" & Chr$(34) & "'"
Application.OnTime Now + TimeSerial(0, 0, 1), "'CallMeOnTime2'"
End Sub
Public Sub CallMeOnTime(strTest1 As String, strTest2 As String)
MsgBox ("test1: " & strTest1 & " test2:" & strTest2)
End Sub

Public Sub CallMeOnTime2()
MsgBox ("CallMeOnTime2")
End Sub

关于vba - Application.OnTime 的多个变量参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31439866/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com