原来说的是这个啊,这是给按钮、菜单等控件指定一个触发时运行的宏,用单引号是通知控件这是一个带有参数的宏,如果宏不需要参数则可以不加单引号,比如 xxx.OnAction = "宏1",这个没啥好解释的,反正就是这么规定的。
也可以用双引号,但必须用两个双引号来转义:
xxx.OnAction = """宏1 1,2,3"""
如果参数是字符型的,那么参数也需要用引号,这时候就要注意双引号和单引号的嵌套关系了,比如
xxx.OnAction = """宏1 'a','b','c'"""
或者
xxx.OnAction = "'宏1 ""a"",""b"",""c""'"
很专业,也很到位。请问前辈,①向宏传递参数,宏如何获取这个参数呢?②这个参数是可变量的吧?你上面也有隐约指出。
追答宏可以这样来定义:
Sub 宏1(x, y)
'这里就可以把传递过来的参数通过x和y来调用了
End Sub
然后在调用的地方就可以这样来写:
xxx.OnAction = "'宏1 1,2'" '这是把具体的数值作为参数传递给宏,然后宏1里的x就是1,y就是2
也可以通过变量来:
aa = 1
bb = 2
xxx.OnAction = "'宏1 " & aa & "," & bb & "'"
变量能够赋予,但是宏运行不了。显示无法运行'宏1 "xxx"'宏。这是为什么?我感觉像是onaction指向的宏并不是宏1