2

我正在尝试使用 QTP 和 SAP 自动化脚本。

在 SAP 中生成订单,状态栏中的文档编号为“在编号 4500290636 下创建的标准采购订单

我的挑战是我应该如何将字符串转换为整数值。

4

3 回答 3

1

由于您使用的是 SAP,我认为可以安全地假设文档编号的长度始终为 10 个字符。因此,您可以使用该函数提取它Right,然后使用Val. 像这样的东西:

yourInteger = Val(Right(yourSAPString, 10))

注意:在 .net 中,您可以使用 Convert.ToInt32 而不是 Val

于 2012-10-13T06:23:58.683 回答
1

您可以使用拆分功能:

Dim strSplit As Variant
Dim yourNumericOut As Variant

    strSplit = Split("Standard PO created under the number 4500290636")

    If IsNumeric(UBound(strSplit)) Then yourNumericOut = --strSplit(UBound(strSplit))

然后测试数字,将允许许多长度,并且可以更改数字在返回值中的位置。

于 2012-10-14T09:48:59.643 回答
0

我建议使用自定义函数。

这是功能:

Public Function ExtractNumber(fromString As String) As Double
    Dim RegEx As Object
    Set RegEx = CreateObject("VBScript.RegExp")
    With RegEx
        .Pattern = "(\d{1,3},?)+(\.\d{2})?"
        .Global = True
        If .Test(fromString) Then
            ExtractNumber = CDbl(.Execute(fromString)(0))
        End If
    End With
End Function

这是使用示例:

Sub Example()
    Debug.Print ExtractNumber("Standard PO created under the number 4500290636")
End Sub

此代码取自具有更好解决方案的类似的、更新的答案。请参见此处: Excel VBA - 提取字符串中的数值

于 2019-03-07T19:09:02.270 回答