Vba Excel在使用“查找”时停止工作

Vba Excel在使用“查找”时停止工作,vba,excel,Vba,Excel,我正在编写一个代码,以查找范围“J1”中包含“1263_Estamp_En”和wan的行,以选择同一列并将其粘贴到另一个工作簿,但在运行代码excel时,请停止工作并重新启动自身,请帮助我如何搜索范围并选择值。下面是代码 Sub Search() Dim A As Range Dim myRng As Range Dim R As Range Dim Col ThisWorkbook.Sheets("Result").Activate Set R = Range("A1:Z1") This

我正在编写一个代码,以查找范围“J1”中包含“1263_Estamp_En”和wan的行,以选择同一列并将其粘贴到另一个工作簿,但在运行代码excel时,请停止工作并重新启动自身,请帮助我如何搜索范围并选择值。下面是代码

 Sub Search()

Dim A As Range
Dim myRng As Range
Dim R As Range
Dim Col

ThisWorkbook.Sheets("Result").Activate
Set R = Range("A1:Z1")
ThisWorkbook.Sheets("Sheet1").Activate
Set A = Range("A1")
myRng = R.Find(what:=Str(A), LookIn:=xlValue)
Cells(myRng.Row, myRng.Column).Select
Col = Selection.Column
Col.select
Range(selection,selection.end(xldown)).copy
Thisworkbook.Sheets("Sheet2").Activate
Range("A1").Pastespecial xlPasteValues

End Sub

我想您正在寻找类似下面的代码(没有所有不必要的
激活
选择
选择
):

选项显式
子搜索()
使范围变暗
暗myRng As范围
调光范围
暗柱
设置R=图纸(“结果”)。范围(“A1:Z1”)
A组=板材(“板材1”)。范围(“A1”)
设置myRng=R.Find(what:=CStr(A.Value),LookIn:=xlValue,lookat:=xlWhole)

如果不是myRng什么都不是,那么“我想您正在寻找类似下面的代码(没有所有不必要的
激活
选择
选择
):

选项显式
子搜索()
使范围变暗
暗myRng As范围
调光范围
暗柱
设置R=图纸(“结果”)。范围(“A1:Z1”)
A组=板材(“板材1”)。范围(“A1”)
设置myRng=R.Find(what:=CStr(A.Value),LookIn:=xlValue,lookat:=xlWhole)

如果不是myRng什么都不是,那么“@Mat”自鸣得意,除了避免选择和激活可以做什么来避免关闭excel@Mat'sMug除了避免选择和激活可以做些什么来避免关闭excelRuntime错误9下标超出范围在
Set myRng=R.Find上(what:=CStr(A.Value),LookIn:=xlValue,lookat:=xlother)
@vbatodler这行怎么样?我试着猜你想用这个发现来寻找什么?我删除了
LookIn:xlValue
code现在正在工作代码是
Set myRng=R.Find(what:=CStr(A.Value),lookat:=xlother)
。ThanksRuntime错误9设置myRng=R.Find上的下标超出范围(what:=CStr(A.Value),LookIn:=xlValue,lookat:=xlother)
@vbatodler这一行呢?我试着猜你想用这个发现来寻找什么?我删除了
LookIn:xlValue
code现在正在工作代码是
Set myRng=R.Find(what:=CStr(A.Value),lookat:=xlother)
。谢谢
Option Explicit

Sub Search()

Dim A As Range
Dim myRng As Range
Dim R As Range
Dim Col

Set R = Sheets("Result").Range("A1:Z1")
Set A = Sheets("Sheet1").Range("A1")

Set myRng = R.Find(what:=CStr(A.Value), LookIn:=xlValue, lookat:=xlWhole)

If Not myRng Is Nothing Then ' <-- check if Find was successful
    ' rest of your code goes here
    myRng.EntireColumn.Copy <-- copy entire Column where found
    Sheets("Sheet2").Range("A1").PasteSpecial xlPasteValues
End If

End Sub