我正在尝试自动复制HMTL表,然后将数据分配到选定的单元格中,但是在替换列上的某些数据时会发生错误,单击调试后代码可以正常运行但不会继续删除单元格。 / p>
错误:
代码:
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
答案 0 :(得分:1)
如果没有数据,我无法肯定地说,但我强烈怀疑问题是你的一个或多个InStr
支票正在返回0,这意味着你所拥有的字符搜索(&#34;(&#34;和&#34;)&#34;)不在字符串中。这意味着您正在调用Mid(g,0,0)
,这会导致您报告的错误。
我建议您在尝试更换之前检查您正在搜索的角色是否存在,因此:
If InStr(1, g, ")") > 0 Then
'your replace code here
Else
Debug.Print ("Search character not found")
End If
不是最优雅的解决方案,但它确实有效。