VBA 检查列中单元格的最大长度

问题描述 投票:0回答:2

我试图编写一个VBA代码来检查特定范围内所有单元格的长度是否保持在25个字符以下。

如果任何单元格超过 25 个字符,则需要弹出一个包含单元格名称的消息框。

例如范围 = A1:A10

如果单元格 A3 有 27 个字符,则需要弹出消息框,指出“单元格 A3”

你们有人能帮我吗?

excel vba
2个回答
4
投票

这实际上就是您所要求的。这是一个非常简单的循环。然而,在包含大量超过 25 的值的大型数据集上,它会困扰您的屏幕

Sub TestCellLengths()
    Dim c As Range

    For Each c In Range("A1:A10")
        If Len(c) > 25 Then MsgBox "Cell " & c.Address(RowAbsolute:=False, ColumnAbsolute:=False)
    Next c
End Sub

我建议只显示一个

MsgBox

Sub TestCellLengths()
    Dim c As Range
    Dim Msg As String

    For Each c In Range("A1:A10")
        If Len(c) > 25 Then Msg = Msg & vbTab & c.Address(RowAbsolute:=False, ColumnAbsolute:=False) & vbNewLine
    Next c

    If Len(Msg) > 0 Then MsgBox "Cells:" & vbNewLine & Msg
End Sub

0
投票

我也想知道同样的事情。我猜你不需要循环,这会在几千行上花费更长的时间。

公式为 =INDEX(range,MATCH(MAX(LEN(range)),LEN(range),0)

我用过

AG2 = Application.VLookup(AG1, 工作簿(WB1).Sheets("已清理").Range("R:V"), 2, False)

避免两列与数千行之间的比较。 我将尝试与索引匹配相同的操作并返回。

© www.soinside.com 2019 - 2024. All rights reserved.