在Excel列中查找连续的大写字母

在Excel列中查找连续的大写字母,excel,vba,Excel,Vba,我想要一些帮助,突出显示具有连续大写字母(2个或更多)的列中的单元格;很多时候我都会看到输入错误,手动验证每一行非常耗时 该列可以具有如下值: “太阳落山” “主街二号” “昨天” “今天会更好” 在这些情况下,我希望公式突出显示第1、2和4行。我试过使用Visual Basic,但我不太擅长 非常感谢在这方面提供的任何帮助。如果您对非VBA解决方案感兴趣,可以使用基于公式的条件格式规则,即(应用于单元格A1): =COUNT(1/(MMULT(0+)(ABS(77.5-code)(中间(A1和

我想要一些帮助,突出显示具有连续大写字母(2个或更多)的列中的单元格;很多时候我都会看到输入错误,手动验证每一行非常耗时

该列可以具有如下值:

“太阳落山”

“主街二号”

“昨天”

“今天会更好”

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


非常感谢在这方面提供的任何帮助。

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

=COUNT(1/(MMULT(0+)(ABS(77.5-code)(中间(A1和“ξ”,列(A:B)-1+行(间接(“1:”&LEN(A1))),1))>0

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


关于

我想出了这个替代方案:-

=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)
)
=SUM(

(代码(MID(A1,行(间接)(“1:”&LEN(A1)-1)),1))>=64)*(代码(MID(A1,行(间接)(“1:”&LEN(A1)-1)),1))=64)*(代码(MID(A1,行(间接)(“2:”&LEN(A1))),1))如果您想要一个简单的自定义项:

Function MultiUpper(sIn As String) As Boolean
    MultiUpper = (sIn Like "*[A-Z][A-Z]*")
End Function
然后在单元格或CF中,公式:

=MultiUpper(A1)

如果单元格连续有多个大写字符,则返回True。

很好,可能比我的努力快得多。是否认为第二行中的括号()可能是可选的?@TomSharpe它们是可选的,但为了清晰起见,我喜欢它们。