我在Excel中有一长串名称,其中都包含“PP”后跟一个数字。例如PP10
或P101.
如何在字符串中提取三个数字字符?
我想在'PP'后拉出数字。我试过下面的代码,但它似乎只能工作到PP99
,在“PP”之后有三个数字字符的东西没有正确读取。
For n = 1 To MyCount
If Mid(MyString, n, 2) = "PP" Then
If IsNumeric(Mid(MyString, n + 2, 1)) Then
PP_Image = Mid(MyString, n + 1, 3)
End If
End If
Next n
If IsNumeric(Mid(PP_Image, 2, 2)) Then
PP_Image = Mid(PP_Image, 2, 2)
Else: IsNumeric (Mid(PP_Image, 2, 1))
PP_Image = Mid(PP_Image, 2, 1)
End If
这是假设没有其他文本超出PP#。如果文本类似于“示例OO11 PP222 QQ3456”,那么这种方法将不会提供正确的结果 – tigeravatar
但是,如果文本在PP#之后终止(如提问者示例中所示),那么Split方法将完美工作。 – tigeravatar
上面提供的例子都是“Example PP#”。解决这个问题的方法是双重分割:'PP_Image = Val(Split(Split(MyString,“PP”)(1),“”)(0))' 也就是说,假设数字之后有一个空格。 –