Excel停止工作,而使用查找
我正在寻找一个代码,以找到一个行中的“1263_Estamp_En”在范围“J1”并wan以选择相同的列并将其粘贴到另一个工作簿,但运行代码时excel停止工作并重新启动,请帮助我如何搜索范围并选择值。下面是代码...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
我认为你正在寻找的东西像下面的代码(没有所有的不必要Activate
,Selection
和Select
):
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
运行时错误9下标超出范围'Set myRng = R.Find(什么:= CStr(A.Value),LookIn:= xlValue,lookat:= xlWhole)' –
@VBAToddler这条线呢?我试图猜测你在寻找什么? –
我删除了'LookIn:xlValue'代码正在工作现在代码是'Set myRng = R.Find(what:= CStr(A.Value),lookat:= xlWhole)'。谢谢 –
[避免选择并激活( http://stackoverflow.com/q/10714251/1188513) –
@ Mat'sMug除了避免选择和激活什么可以做,以避免关闭excel –