2017-07-26 78 views
0

我目前正在尝试使用查找功能来查找'一个站点:'从那里,我将清除任何在右边。我正在面对应用程序定义的错误,它应该清除该行。我想我可能做错了。如果有人告诉我我在哪里做错了,这将是很好的范围对象错误

Dim r As Range 
Set r = Sheet2.Range("E:M").Find(What:="One site:", _ 
After:=Sheet2.Range("E3"), _ 
LookIn:=xlValues, LookAt:=xlPart) 
If Not r Is Nothing Then 
r.End(xlRight).ClearContents 'Error on this line 
End If 
+0

在'.Find'之前放置'On Error Resume Next'。然后将'On Error GoTo 0'放在后面,否则如果找不到它会得到另一个错误。 – PatricK

+2

它应该是'xlToRight',而不是* xlRight *我认为这就是你想要做的。 – PatricK

回答

3

这应该是你是什么后,您需要更改xlR​​ightxlToRight,和一点点额外的清除那些在右边。

Option Explicit 

Sub SO45316709() 
    Dim r As Range, r2 As Range 
    On Error Resume Next 
    Set r = Sheet2.Range("E:M").Find(What:="One site:", After:=Sheet2.Range("E3"), LookIn:=xlValues, LookAt:=xlPart) 
    On Error GoTo 0 
    If Not r Is Nothing Then 
     Set r2 = r.End(xlToRight) 
     Sheet2.Range(r.Offset(0, 1), r2).ClearContents 
    End If 
End Sub 
+0

谢谢@ YowE3K,也可以使用'With Sheet2'来减少打字。 – PatricK

1

您需要在下划线之前留出空格。

+0

我的find函数的代码在excel中没有分割,但是当我在这里复制时,它被分割了。之后我加了下划线。 –