在VBA函数中能用变量调用宏吗

查找区域中有空格。排名时,从第一个存放名次的单元格一下拉,在空格对应的排名单元格处会出现错误提示,需要调用宏命令cwz删除存放名次区域内的错误值。如何把这个自定义函数与宏... 查找区域中有空格。排名时,从第一个存放名次的单元格一下拉,在空格对应的排名单元格处会出现错误提示,需要调用宏命令cwz删除存放名次区域内的错误值。如何把这个自定义函数与宏命令结合在一起,使出现错误值的地方显示为空格?
Public Function 排名(参照, 查找区域) As Single
排名 = WorksheetFunction.Rank(参照, 查找区域)
End Function

'删除错误值Sub cwz()
Sub cwz()
Selection.SpecialCells(xlCellTypeFormulas, 16).Select
Selection.ClearContents
End Sub
展开
 我来答
rge1211
2011-11-02 · TA获得超过1881个赞
知道小有建树答主
回答量:671
采纳率:100%
帮助的人:331万
展开全部
Public Function 排名(参照, 查找区域) As Single
On error goto ClearCon
排名 = WorksheetFunction.Rank(参照, 查找区域)
End Function
ClearCon:
Selection.SpecialCells(xlCellTypeFormulas, 16).Select
Selection.ClearContents
End Function

合成一个自定义函数就行
更多追问追答
追问
这段代码无法运行,去掉中间的End Function后,向下一拉,出现以下排名界面(A是姓名,B列是成绩,C列是名次),没有报上成绩的考生名次显示为0,能否让其显示为空格或什么也不显示。
A列 B列 C列
1 5
0
7 2
0
2 4
0
0
9 1
0
3 3
追答
我看是因为你的C列格式是数字引起的吧。把格式改成通用或文本。
那行End Fuction不要去掉,修改为Exit Function

而且你这个直接在C1输入公式:
=IF(B1="","",RANK(B1,B:B))
这样就行了啊
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式