vba - 如何在VBA中找到两个字符之间的数字

标签 vba

例如,我有这个字符串,它显示为 "IRS150Sup2500Vup"。它也可以是 "IRS250Sdown1250Vdown"

我想提取两个 S 之间的数字。因此对于第一种情况,它将是 150,第二种情况是 250。数字并不总是 3 位数字。它可能会有所不同。

我尝试过的:

Dim pos As Integer
Dim pos1 As Integer

pos = InStr("IRS150Sup2500Vup", "S")
pos1 = InStrRev("IRS250Sdown1250Vdown","S")

在此之后,我不知道如何取出号码。

需要一些关于如何执行此操作的指导。

最佳答案

正如我建议的那样here ,最简单的方法是使用正则表达式。

Sub Test()
Dim r As VBScript_RegExp_55.RegExp
Dim sPattern As String, myString As String
Dim mc As VBScript_RegExp_55.MatchCollection, m As VBScript_RegExp_55.Match

myString = "IRS150Sup2500Vup"
sPattern = "\d+" 'searches for numbers 
Set r = New VBScript_RegExp_55.RegExp
r.Pattern = sPattern

Set mc = r.Execute(myString)
For Each m In mc ' Iterate Matches collection.
    MsgBox "number: '" & m.Value & "' founded at: " & m.FirstIndex & " length: " & m.Length
Next

End Sub

关于vba - 如何在VBA中找到两个字符之间的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27913879/

相关文章:

vba - 按字符比较(差异)两个单元格中的字符串

vba - 基于范围 VBA 的过滤列

excel - VBA检查整个范围是否具有有效日期并且不为空?

excel - 为什么我的 Excel 声明会使我的文件崩溃?

visio的vba编程

vba - 使用 VBA 查找

vba - 在 MS Access 的多个控件中使用相同的事件代码

excel - 如何使用 If 语句在列中搜索特定文本?

vba - 如果四个变量相等

vba - 有没有更有效的方法来计算数组的幂集?