2016-01-11 37 views
-2

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

E.g

01999102477490 (first char "0") 

11003200602650 (first char "1") 

我试图做到的是用IF语句按“0”和“1”来区分单元格的值,并将它们分配到不同的列。我可以自己发表声明,我只需要知道如何检查“0”和“1”的第一个字符。

我还要说,我有值的整列检查

+0

[VBA excel - 复制工作簿之间的单元格]的可能副本(http://stackoverflow.com/questions/6287405/vba-excel-copy-cells-between-workbooks) – Jeeped

回答

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开头的那些值替换“无论是”还是“无”

+1

fwiw,本地工作表[左函数] (https://support.office.com/en-us/article/LEFT-function-BE3191EA-D332-43E4-BAC3-810C97773A22)不需要* number_of_characters *参数(如果只需要最左侧的一个)。 – Jeeped

4

尝试:

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

    xlString = "01999102477490" 

    xlFirstChar = Left$(xlString, 1) 

    MsgBox xlFirstChar 
End Sub 

String Manipulation

+0

如果我有一整列值来检查,该怎么办? – mrwave

1

稍微不同的方法。

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

相关问题