在VBA函数中能用变量调用宏吗
查找区域中有空格。排名时,从第一个存放名次的单元格一下拉,在空格对应的排名单元格处会出现错误提示,需要调用宏命令cwz删除存放名次区域内的错误值。如何把这个自定义函数与宏...
查找区域中有空格。排名时,从第一个存放名次的单元格一下拉,在空格对应的排名单元格处会出现错误提示,需要调用宏命令cwz删除存放名次区域内的错误值。如何把这个自定义函数与宏命令结合在一起,使出现错误值的地方显示为空格?
Public Function 排名(参照, 查找区域) As Single
排名 = WorksheetFunction.Rank(参照, 查找区域)
End Function
'删除错误值Sub cwz()
Sub cwz()
Selection.SpecialCells(xlCellTypeFormulas, 16).Select
Selection.ClearContents
End Sub 展开
Public Function 排名(参照, 查找区域) As Single
排名 = WorksheetFunction.Rank(参照, 查找区域)
End Function
'删除错误值Sub cwz()
Sub cwz()
Selection.SpecialCells(xlCellTypeFormulas, 16).Select
Selection.ClearContents
End Sub 展开
1个回答
展开全部
Public Function 排名(参照, 查找区域) As Single
On error goto ClearCon
排名 = WorksheetFunction.Rank(参照, 查找区域)
End Function
ClearCon:
Selection.SpecialCells(xlCellTypeFormulas, 16).Select
Selection.ClearContents
End Function
合成一个自定义函数就行
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))
这样就行了啊
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询