gpt4 book ai didi

vba - IsError 和 InStr 上的过程调用或参数无效

转载 作者:行者123 更新时间:2023-12-04 21:32:51 27 4
gpt4 key购买 nike

我希望有人可以帮助解决我收到的错误?

我正在尝试在包含大量文本的单元格中查找值。我正在寻找文本 "TOTAL DDD AMOUNT"在一个单元格内,然后返回值

(注 - Range("P1458") 是一个示例单元格,我知道该值存在并且应该返回一个值)。

Dim ValDDDRng As Range
Set ValDDDRng = Worksheets("DATA2").Range("P1458")
Dim ValDDD As Variant

If Not IsError(Mid(ValDDDRng, InStr(1, ValDDDRng, "TOTAL DDD AMOUNT", _
vbTextCompare) + 17, (InStr(1, ValDDDRng, ",", vbTextCompare)) _
- (InStr(1, ValDDDRng, "TOTAL DDD AMOUNT", vbTextCompare)))) Then

它正在查找这些值的单元格内的文本示例。有时,开头可能包含其他文本,因此与单元格中的金额可能的位置不一致。我希望返回值 75.33但首先要澄清在获取值(value)时没有错误。如果 IsError返回一个错误然后它是返回一个 Nothing but Else 返回实际值(来自示例 £75.33)

**** TAXES: 58.99 GBR,TOTAL DDD AMOUNT: 75.33 GBR,TOTAL FEES: 16.34 GBR,** BLUE/GREEN**,FILE RECORD PREPARED,*****CLEARED DDD*****



当我运行 If Not IsError 示例时,我收到一个无效的过程调用或参数

最佳答案

"TOTAL DDD AMOUNT"后第一个数值的解决方法, 分为 2 部分。

第 1 部分 : 使用 Instr查找 "TOTAL DDD AMOUNT" 位置的函数单元格内的字符串。

xPos = InStr(1, ValDDDRng, "TOTAL DDD AMOUNT", vbTextCompare) '<-- result is 23

第 2 部分 : 使用 RegEx对象获取第一个数字结果(任何格式的十进制值),仅查看单元格的文本,从 "TOTAL DDD AMOUNT" 开始, 通过使用 Reg.Execute(Mid(ValDDDRng, xPos)) .

在您的示例中, Mid(ValDDDRng, xPos) = "DDD 总量:75.33 GBR,总费用:16.34 GBR,** 蓝色/绿色**,已准备文件记录,***** 已清除 DDD*****"

代码
Dim ValDDDRng As Range
Dim ValDDD As Variant, xPos As Long

' RegEx variables
Dim Reg As Object
Dim RegMatches As Variant, Match As Variant

Set ValDDDRng = Worksheets("DATA2").Range("P1458")

xPos = InStr(1, ValDDDRng, "TOTAL DDD AMOUNT", vbTextCompare)

Set Reg = CreateObject("VBScript.RegExp")
With Reg
.Global = True
.IgnoreCase = True
.Pattern = "(\d+)(?:\.(\d{1,2}))?" ' Match number (with decimals)
End With

Set RegMatches = Reg.Execute(Mid(ValDDDRng, xPos))
If RegMatches.Count >= 1 Then ' make sure there is at least 1 match
ValDDD = RegMatches(0) ' <-- this is the numeric value you are looking for
End If

关于vba - IsError 和 InStr 上的过程调用或参数无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47200462/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com