VBA,字符串双引号中的单引号有什么意义

VBA,字符串双引号中的单引号有什么意义如a="'宏1 1'"
这其中的'有什么意义?是什么特殊格式?有什么作用?😭

这是因为单引号也是字符串的一部分(或者说单引号和“宏”、“1”这些一样都是字符串的组成部分),至于具体有什么意义,那要看到完整的代码才能判断。追问

追答

原来说的是这个啊,这是给按钮、菜单等控件指定一个触发时运行的宏,用单引号是通知控件这是一个带有参数的宏,如果宏不需要参数则可以不加单引号,比如 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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-01-27
有空格,免得字符串被分开。
第2个回答  2018-01-27
字符串双引号中的单引号,如a="'宏1 1'",内容为
'宏1 1'
字符串双引号中未加单引号,如a="宏1 1",内容为
宏1 1
相似回答