2016-09-22 25 views

回答

0

試試這個簡短的宏:

Sub KopyKat() 
    Dim N As Long, i As Long, K As Long 
    Dim s As String 

    N = Cells(Rows.Count, 1).End(xlUp).Row 
    K = 1 

    For i = 1 To N 
     s = Cells(i, 1).Value 
     If Len(s) = 8 _ 
      And Mid(s, 1, 1) Like "[a-zA-Z]" _ 
      And Mid(s, 2, 1) Like "[a-zA-Z]" _ 
      And IsNumeric(Mid(s, 3)) Then 
       Cells(K, 2).Value = s 
       K = K + 1 
     End If 
    Next i 
End Sub 

enter image description here

0

如果字符串是在A:然後在B1(和複製下來):

=IF(LEN(A1)>7,IF(AND(CODE(LOWER(MID(A1,{1,2},1)))<>CODE(UPPER(MID(A1,{1,2},1))),ISNUMBER(MID(A1,{3;4;5;6;7;8},1)*1)),LEFT(A1,8),""),"") 

這是一個陣列式,並且必須以CTRL確認+轉移+進入。

運行評估公式顯示會發生什麼以及它是如何工作:)


使用VBA,那麼這將做到:

Sub CopyMe() 
    Dim x As Variant, i As Long 
    For Each x In Range([A1], Cells(Rows.Count, 1).End(xlUp)).Value2 
    If x Like "[a-zA-Z][a-zA-Z]######" Then 
     i = i + 1 
     Cells(i, 2) = x 
    End If 
    Next 
End Sub 
0

這是另一種方法。該公式循環遍歷字符串查找6位數字,此時它將採用前兩個字符(只要它們存在)並返回8個字符的字符串。否則它返回一個空字符串。

=IFERROR(MID(A1,SUMPRODUCT(ROW($A$1:$A$100),--ISNUMBER(VALUE(MID(A1,ROW($A$1:$A$100),6))))-2,8),"") 

循環100次,所以將與字符串的工作高達106個字符的最大長度。要使用公式,請將您的字符串放在列A中,然後將此公式放入單元格B1(例如)並拖動下拉

相關問題