Excel如何编写公式判断单元格含斜向上对角线时返回值P
问题原因
你写的公式无法生效有两个核心原因:
- 语法不符合IF函数规则:IF函数的固定结构是
=IF(判断逻辑, 逻辑成立返回值, 逻辑不成立返回值),你的公式括号错位,参数顺序完全错误 - 工作表函数不支持直接读取单元格边框属性:
xlDiagonalUp是VBA环境的内置常量(值为5,代表斜向上对角线边框),普通工作表公式既无法识别这个常量,也没有原生函数可以直接读取单元格的边框格式设置。
正确实现方法
需要通过VBA编写自定义函数完成判断,操作步骤如下:
- 打开目标工作簿,按
Alt+F11打开VBA编辑器 - 在左侧工程栏右键点击当前工作簿名称,选择「插入」-「模块」
- 在打开的模块代码窗口粘贴以下代码:
Function CheckDiagUp(targetRng As Range) As String If targetRng.Borders(xlDiagonalUp).LineStyle <> xlNone Then CheckDiagUp = "P" Else CheckDiagUp = "" End If End Function
- 返回工作表界面,在需要输出结果的单元格输入公式即可,例如判断C3单元格的公式为:
=CheckDiagUp(C3)
注意:该方案需要将文件保存为.xlsm启用宏格式,打开文件时需启用宏内容才能保证计算正常。目前不存在无宏的普通工作表公式可以实现读取单元格边框属性的需求,所有判断单元格格式类的需求都需要借助VBA或宏表函数完成。
内容的提问来源于stack exchange,提问作者DMatt d20Gamer
相关产品推荐
相关产品推荐

