gpt4 book ai didi

vba - Replace 函数上的过程调用或参数无效

转载 作者:行者123 更新时间:2023-12-04 20:41:37 29 4
gpt4 key购买 nike

我正在尝试自动复制 HMTL 表,然后将数据分配到选定的单元格中,但是在替换列上的某些数据时发生错误,单击调试代码有效,但它不会继续删除单元格。

错误:

error

代码:

Option Explicit
Sub Button11_Click()
Application.ScreenUpdating = False
Dim j As Integer, b As Integer, r As Integer, g As String

Range("XET1").Select
ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
False, NoHTMLFormatting:=True

j = 6
b = 1

For r = 5 To 1000
If ActiveSheet.Cells(r, 5).Value <> "" Then

Range("C" & j).Value = Range("XEU" & b).Value
g = Range("XEV" & b)
Range("E" & j).Value = Replace(Mid(g, InStr(g, "(") + 5, InStr(g, ")") - InStr(g, "(") - 5), "CEST", "")
Range("D" & j).Value = Replace(Mid(g, InStr(g, "") + 38, InStr(g, ")") - InStr(g, "(") + 25), "REQ", "")
Range("F" & j).Value = Range("XFD" & b).Value

j = j + 1
b = b + 1
End If
Next r

ActiveSheet.Range("XET1:XFD50").Clear
Application.ScreenUpdating = True
End Sub

最佳答案

如果没有手头的数据,我无法确定,但我强烈怀疑问题在于您的 InStr 中的一个或多个检查返回 0,这意味着您要搜索的字符(“(”和“)”)不在字符串中。这意味着您正在调用 Mid(g,0,0) ,这会导致您报告的错误。

我建议您在尝试替换之前检查您正在搜索的字符是否存在,因此:

If InStr(1, g, ")") > 0 Then
'your replace code here
Else
Debug.Print ("Search character not found")
End If

不是最优雅的解决方案,但它有效。

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

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