在Excel列

时间:2016-01-14 09:53:56

标签: excel excel-vba vba

我想帮助突出列中具有连续大写字母(2个或更多)的单元格;我多次看到拼写错误,手动验证每一行都非常耗时。

列可以包含以下值:

" CEar击落太阳"

"主要街道"

"昨天"

"今天将是bETTer"

在这些情况下,我希望公式突出显示第1,2和4行。我尝试使用Visual Basic,但我不太擅长。

我感谢任何帮助。

3 个答案:

答案 0 :(得分:3)

如果你想要一个简单的UDF:

Function MultiUpper(sIn As String) As Boolean
    MultiUpper = (sIn Like "*[A-Z][A-Z]*")
End Function

然后在一个单元格或CF中,公式:

=MultiUpper(A1)
如果单元格连续有多个大写字符,则

返回True。

答案 1 :(得分:2)

如果您对非VBA解决方案感兴趣,可以使用基于公式的条件格式规则,即(应用于单元格A1):

=COUNT(1/(MMULT(0+(ABS(77.5-CODE(MID(A1&"ξ",COLUMN(A:B)-1+ROW(INDIRECT("1:"&LEN(A1))),1)))<13),ROW(1:2)^0)>1))>0

显然,在设置此规则时要注意相对引用的常规行为。

此致

答案 2 :(得分:1)

我提出了这个选择: -

=SUM(
(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1)-1)),1))>=64)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1)-1)),1))<=90)
*(CODE(MID(A1,ROW(INDIRECT("2:"&LEN(A1))),1))>=64)*(CODE(MID(A1,ROW(INDIRECT("2:"&LEN(A1))),1))<=90)
)

如果用作独立公式,它将对短于2个字符的字符串给出错误(并且必须作为数组公式输入),但如果在条件格式中使用则应该正常工作。