我在vba中有一些包含以下字符串的单元格:
QUANTITY SUPPLY <= DAYS SUPPLY|30 IN 23 DAYS
我通过两个函数将这些字符串传递,这两个函数只选择了两个数字并将它们解析到适当的单元格中,并且删除了其余部分。选取天数的函数(23)正常工作,但选取30的函数则不行。我一直在测试它,似乎它把整个30和之前的所有字符串都解析出来了,而我想要的仅仅是30。对于上述字符串,它返回了“QUANTITY SUPPLY <= DAYS SUPPLY | 30”,而我希望它只返回30。我查看了函数,但无法找到问题。非常感谢您对此问题的任何帮助!
QUANTITY SUPPLY <= DAYS SUPPLY|30 IN 23 DAYS
我通过两个函数将这些字符串传递,这两个函数只选择了两个数字并将它们解析到适当的单元格中,并且删除了其余部分。选取天数的函数(23)正常工作,但选取30的函数则不行。我一直在测试它,似乎它把整个30和之前的所有字符串都解析出来了,而我想要的仅仅是30。对于上述字符串,它返回了“QUANTITY SUPPLY <= DAYS SUPPLY | 30”,而我希望它只返回30。我查看了函数,但无法找到问题。非常感谢您对此问题的任何帮助!
Public Function extractQLlMax(cellRow, cellColumn) As String
qlm = Cells(cellRow, cellColumn).Value
extractQLlMax = qlm
If extractQLinfoBool = "Yes" And Not InStr(1, qlm, "IN") = 0 Then
If InStr(1, qlm, "QUANTITY SUPPLY") > 0 Then
pipeIndex = InStr(1, qlm, "|")
inIndex = InStr(1, qlm, "IN")
extractQLlMax = Mid(qlm, pipeIndex, inIndex - pipeIndex)
End If
inIndex = InStr(1, qlm, "IN")
extractQLlMax = Mid(qlm, 1, inIndex - 2)
ElseIf extractQLinfoBool = "Yes" And Not InStr(1, qlm, "FILL") = 0 Then
perIndex = InStr(1, qlm, "PER")
extractQLlMax = Mid(qlm, 1, perIndex - 2)
End If
End Function