Application.Onkey"{Enter}","HanShu",使用这个语句实现当在特定单元格按下回车键时,可以调用模块HanShu,但我现在想要通过这个语句传递参数,比如我想写成Application.Onkey"{Enter}","HanShu(CanShu1,CanShu2)",但程序报错,请教各位大神这个应该靠什么功能实现参数传递?
VBA调用子程序时,如果不带参数,
直接写sub过程名,或者Call sub名称即可。
如果需要传递参数:
同样可以使用Call:
例如:
Call PicInComment(1, 250)
参数写在后面,不带括号:
例如:
PicInComment 1, 250
也可以赋值给其他变量:
例如:
result = PicInComment(1, 250)
还是不行,我是EXCEL里,对某个单元格按下回车后调用一个函数,正常都是写的Application.Onkey"{Enter}","函数名",但这种方式传递不了参数,即使按照你说的去掉括号也不行
为什么一定要直接传参数呢?
若参数值可通过excel的单元格进行计算获得,可以通过类似这样的代码来获取单元格F6中的值 Range("F6").FormulaR1C1。
这样是否就能变通的实现你的要求呢?
查看https://msdn.microsoft.com/zh-cn/library/ff197461(v=office.14).aspx 微软文档,应该是不能实现你提出的直接传参数的问题的。
通过单元格获取会好一点
你这样肯定不行啊,后面调用宏的参数是字符串,只能指向宏名。
如果你想实现你那个效果可以套一层sub。比如说
sub 调用hanshu()
call HanShu(CanShu1,CanShu2)
end sub