我是新手 - 尝试从连接的文本字符串中提取名称和日期 - 每行都有一个月份名称 - 所有都不同,每个搜索都必须更改月份。
[附件是我使用MID提取日期的结果的截图] [1]
我尝试使用逗号左边的第一个大写字母进行MID和RIGHT,但没有运气。 任何帮助将不胜感激。
我有一个处理数据的脚本 - 以下是用于提取名称和日期的VBA代码: 名称 ActiveCell.Formula =“= IFERROR(MID(C3,1,FIND(”“January”“,C3,1)-1),IFERROR(MID(C3,1,FIND(”“February”“,C3,1) -1),IFERROR(MID(C3,1,FIND( “” 月 “”,C3,1)-1),IFERROR(MID(C3,1,FIND( “” 四月 “”,C3,1)-1 ),IFERROR(MID(C3,1,FIND( “” 可能 “”,C3,1)-1),IFERROR(MID(C3,1,FIND( “” 月 “”,C3,1)-1), IFERROR(MID(C3,1,FIND( “” 七五 “”,C3,1)-1),IFERROR(MID(C3,1,FIND( “” 八一 “”,C3,1)-1),IFERROR( MID(C3,1,FIND( “” 九月 “”,C3,1)-1),IFERROR(MID(C3,1,FIND( “” 十月 “”,C3,1)-1),IFERROR(MID( C3,1,FIND(“”11月“,”C3,1)-1),IFERROR(MID(C3,1,FIND(“”12月“,”C3,1)-1),“”不匹配“” ))))))))))))“
日期 ActiveCell.Formula =“= IFERROR(MID(C3,FIND(”“January”“,C3)* 1,20),IFERROR(MID(C3,FIND(”“February”“,C3)* 1,20), IFERROR(MID(C3,FIND( “” 月 “”,C3)* 1.20),IFERROR(MID(C3,FIND( “” 月 “”,C3)* 1.20),IFERROR(MID(C3, FIND( “” 可能 “”,C3)* 1.20),IFERROR(MID(C3,FIND( “” 月 “”,C3)* 1.20),IFERROR(MID(C3,FIND( “” 七月” ” C3)* 1.20),IFERROR(MID(C3,FIND( “” 八一 “”,C3)* 1.20),IFERROR(MID(C3,FIND( “” 九 “”,C3)* 1 ,20),IFERROR(MID(C3,FIND( “” 十月 “”,C3)* 1.20),IFERROR(MID(C3,FIND( “” 月 “”,C3)* 1.20),IFERROR( MID(C3,FIND( “” 月 “”,C3)* 1,20) “” 没了 “”))))))))))))“
我确信有一种更简单的方法 - 我只是没想出来,而且我被迫要求获取这些数据 -
答案 0 :(得分:0)
Here are two User Defined Functions:
Public Function DateGrabber(s As String) As Date
Dim temp As String, temp2 As String, i As Long, L As Long
temp = s
temp2 = ""
L = Len(s)
For i = L To 1 Step -1
temp2 = Mid(temp, i, 1) & temp2
If Mid(temp, i, 1) Like "[A-Z]" Then
DateGrabber = CDate(temp2)
Exit Function
End If
Next i
End Function
Public Function DateDiscarder(s As String) As String
Dim i As Long, L As Long
L = Len(s)
For i = L To 1 Step -1
If Mid(s, i, 1) Like "[A-Z]" Then
DateDiscarder = Left(s, i - 1)
Exit Function
End If
Next i
End Function
This first function walks backwards from the end of the string until it finds the first capital letter. That is how it finds the date part.
The second UDF just discards the date using the same criteria: