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)"
执行的时候总是达不到预期的效果。希望高手可以帮我过过眼,看看是哪儿出了问题。
请大家给看看,Excel中这段VBA程序为什么用Run执行和用Call执行的结果不一样呢?
答案:3 悬赏:0
解决时间 2021-04-08 11:18
- 提问者网友:久伴不朽
- 2021-04-07 16:18
最佳答案
- 二级知识专家网友:白日梦制造商
- 2021-04-07 17:14
Run 是进行宏编辑的宏模块Module执行。跟VBA函数调用的方式就不是一回事。
Call 是调用方法或者函数级别的调用。gg("df", 1, 1, 1)是函数或者方法。却不是宏。当然用Call调用才是正确的。
Call 是调用方法或者函数级别的调用。gg("df", 1, 1, 1)是函数或者方法。却不是宏。当然用Call调用才是正确的。
全部回答
- 1楼网友:都不是誰的誰
- 2021-04-07 19:33
xll也是add in
xla是用excel vba编写的macro集合
xll是用像c,fortran等编写的,其实xll更快
你看先你有没有添加waspcn32这个的引用
- 2楼网友:一起来看看吧
- 2021-04-07 18:02
Application.Run的用法错了,宏名称和参数要分开来写,比如:
Application.Run "gg", "asdf",1,1,1
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |