中易网

请大家给看看,Excel中这段VBA程序为什么用Run执行和用Call执行的结果不一样呢?

答案:3  悬赏:0  
解决时间 2021-04-08 11:18
Sub gg(b As String, Optional c As Integer = 0, Optional d As Integer = 0, Optional e As Integer = 0)
Dim a, f As Integer
If c = 1 Then
If d = 1 Then
If e = 1 Then
For f = 0 To 27
Range(Chr(Selection.Column + 64) & Selection.Row + f).Value = "dd"
Next f
For a = 1 To 7
Application.DisplayAlerts = False
Range(Chr(Selection.Column + 64) & Selection.Row & ":" & Chr(Selection.Column + 64) & Selection.Row + 3).Merge
Application.DisplayAlerts = True
Selection.Offset(1, 0).Select
Next a
End If
End If
End If
End Sub
………………
这段代码如果用
Call gg("df", 1, 1, 1)
执行的话可以正常执行,
可是用
Application.Run "gg(" & """asdf""" & ",1,1,1)"
执行的时候总是达不到预期的效果。希望高手可以帮我过过眼,看看是哪儿出了问题。
最佳答案
Run 是进行宏编辑的宏模块Module执行。跟VBA函数调用的方式就不是一回事。
Call 是调用方法或者函数级别的调用。gg("df", 1, 1, 1)是函数或者方法。却不是宏。当然用Call调用才是正确的。
全部回答
xll也是add in xla是用excel vba编写的macro集合 xll是用像c,fortran等编写的,其实xll更快 你看先你有没有添加waspcn32这个的引用
Application.Run的用法错了,宏名称和参数要分开来写,比如: Application.Run "gg", "asdf",1,1,1
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我十五岁的男孩 学什么特长好 我是属于那种比
燕窝行在什么地方啊,我要过去处理事情
助理律师的工资有多少
大鼻子能形容人鼻梁高吗?
重庆水利电力职业技术学院有哪些专业及什么专
奥迪A6L熄火后风扇还会转,正常吗
制作一个网页专题页面一般需要多长时间?
都有哪些元素已被确认在自然界中只有一种核素
到台湾旅游一次要多少钱啊?
java 用循环输入 n 行 字符串 而输出 n行字符
严重: Error while registering Oracle JDBC
请问坐2001南京西到福州的火车要在上海哪个站
目前可支付宝支付的海外商家有几家
无痛人流的价格是多少?江门这边哪里做最实惠
刚刚进入房产中介,一瞧不懂。首先应该怎么做
推荐资讯
抚顺社保网上查询查询密码没改过输入身份证后
陈袁氏重庆家常菜地址在哪,我要去那里办事
windows 2000文件的命名要求是什么?
山庄老酒(西山道店)这个地址在什么地方,我要
oppo在全国一共有多个总代理
热扎带钢c料是什么意思,B料是怎么区分的。
帮我想一个好点的群标签和群简介。群里都是同
葡萄自己扦插种植,几年能结果?
配一套网吧电脑,网吧一般配置的电脑是什么样
浮漂都有哪些品牌?什么牌子好?
学非儒不精,书多人自贤。拜托了各位 谢谢
国富论对现代中国有什么用?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?