【问题标题】:How to check first character in a cell value如何检查单元格值中的第一个字符
【发布时间】:2016-04-15 06:20:18
【问题描述】:

我想知道是否有办法检查单元格值中的第一个字符。

例如

01999102477490 ( first char "0" )

11003200602650 (first char "1" )

我想要完成的是使用 IF 语句根据“0”和“1”区分单元格值并将它们分配给不同的列。我可能可以自己做出声明,我只需要知道如何检查“0”和“1”的第一个字符。

我还应该说我有一整列值要检查

【问题讨论】:

标签: vba excel


【解决方案1】:

试试:

Option Explicit
Sub FirstChar()
    Dim xlString As String
    Dim xlFirstChar As String

    xlString = "01999102477490"

    xlFirstChar = Left$(xlString, 1)

    MsgBox xlFirstChar
End Sub

String Manipulation

【讨论】:

  • 如果我有一整列值要检查怎么办?
【解决方案2】:
IF(logical_test, [value_if_true], [value_if_false])

使用上述方法,您可以执行以下操作:

IF(LEFT(A1,1)="0","0",IF(LEFT(A1,1)="1","1","Neither"))

将 A1 替换为您要测试的单元格

用你想要对以 0 开头的值执行的任何操作替换逗号之间的“0”

将逗号之间的“1”替换为您想要对以 1 开头的值执行的任何操作

用不以 0 或 1 开头的值替换“Neither”

【讨论】:

  • fwiw,如果只需要最左边的一个,本机工作表LEFT function 不需要 number_of_characters 参数。
【解决方案3】:

稍微不同的方法。

Dim a As Long, arr As Variant
With Worksheets("Sheet1")
    arr = .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp)).Value
    For a = LBound(arr, 1) To UBound(arr, 1)
        Select Case Asc(arr(a, 1))  'might have to be .Range("A1").Text
            Case 48
                Debug.Print "it's a zero"
                'do something with arr(a, 1)
            Case 49
                Debug.Print "it's a one"
                'do something with arr(a, 1)
            Case Else
                Debug.Print "it's something else"
        End Select
    Next a
End With

通过将 A 列中的值批量加载到变量数组并循环遍历该数组,您应该在循环中保持相同的一些读取时间。

如果您可以一次处理所有零,然后一次处理所有零,请考虑使用AutoFilter method

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多