我正在尝试使用 QTP 和 SAP 自动化脚本。
在 SAP 中生成订单,状态栏中的文档编号为“在编号 4500290636 下创建的标准采购订单”
我的挑战是我应该如何将字符串转换为整数值。
我正在尝试使用 QTP 和 SAP 自动化脚本。
在 SAP 中生成订单,状态栏中的文档编号为“在编号 4500290636 下创建的标准采购订单”
我的挑战是我应该如何将字符串转换为整数值。
由于您使用的是 SAP,我认为可以安全地假设文档编号的长度始终为 10 个字符。因此,您可以使用该函数提取它Right
,然后使用Val
. 像这样的东西:
yourInteger = Val(Right(yourSAPString, 10))
注意:在 .net 中,您可以使用 Convert.ToInt32 而不是 Val
您可以使用拆分功能:
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))
然后测试数字,将允许许多长度,并且可以更改数字在返回值中的位置。
我建议使用自定义函数。
这是功能:
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 - 提取字符串中的数值