在_下划线之后用于提取##的VBA Excel

我有一个9位数字后跟一个下划线,然后是两位数字的数据集。

例如:

123456789_17 123456789_16 ... 

目前我有一个代码删除之前的数字下划线“

 Sub Trunc3() Range("AF1:AF10000") = Evaluate(Replace("IF(ROW(),LEFT(@,FIND("" "",SUBSTITUTE(SUBSTITUTE(" & _ "@,""_"","" ""),""_"","" "")&"" "")-1))", "@", "E1:E100000")) End Sub 

相反,我想将输出分成两列:
第一列应该是9位数字:123456789第二列应该是两位数年份:17

提前致谢。

使用TextToColumns

 Sub SplitText() Range("AF:AF").TextToColumns Destination:=Range("AF1"), _ DataType:=xlDelimited, _ Other:=True, _ OtherChar:="_", _ FieldInfo:=Array(Array(1, 1), Array(2, 1)) End Sub 

使用Split()方法:

 Sub SplitText1() Dim r As Range Set r = Range("AF:AF") Dim c As Range, v As Variant For Each c In r v = Split(c.Value, "_") c.Value = v(0) c.Offset(0, 1).Value = v(1) Next c End Sub 

编辑:

您可以在每个单元格上循环并相应地设置其值。

 Dim r As Range For Each r In Range("AG:AG") If IsEmpty(r.Offset(0, -1).Value) Then Exit For Select Case r.Value Case 16: r.Value = 2016 Case 17: r.Value = 2017 Case Else: r.Value = 2015 End Select Next r