在列上设置字符数限制

时间:2019-07-12 19:53:12

标签: excel vba

我正在尝试在电子表格中创建条件。其中之一是将B列中单元格的字符数限制为20个。如果输入的数据超出限制,那么我想通过在A列中创建一条消息来对其进行标记。

我尝试修改代码,但无法弄清楚。我目前有一个已编码的消息框,但我想更改该消息框以连接到A列中已标记的错误。

Sub character_length()
For Each cell In Columns("B:B")
        If Len(cell.Value) > 20 Then
            MsgBox " Can't enter more than 15 characters"
            cell.Value = ""
        End If
    Next
End Sub

如果输入的数据超过了,那么我想通过在A列中创建一条消息来对其进行标记。

1 个答案:

答案 0 :(得分:0)

Sub character_length()

Dim cell As Range
Dim LastRow As Long
LastRow = Range("B" & Rows.Count).End(xlUp).Row

For Each cell In Range("B1:" & "B" & LastRow)
If Len(cell.Value) > 20 Then cell.Offset(0, -1).Value = cell.Offset(0, -1).Value & " Can't enter more than 20* characters"
Next
End Sub

以下代码循环遍历B列中的每个单元格,直到B列中的最后一行具有值。这将行数限制为仅数据集中的行数。您可能不希望excel检查所有100万以上的行。然后,它使用IF语句遍历每个单元的长度,类似于您的原始代码。然后,它使用新警告将左侧单元格(A列)中已有的内容连接起来。