如果值不存在,请转到下一个电子表格

我正试图在Excel spreadsheetssearch某些值。 但是,有时元素可能不在spreadsheet

例如,如果我正在寻找原始铜矿储量,我可能会在sheets 12 sheets 1 ,但不是3

所以我写了这个代码:

 q = 1 Case 2 find_Element = fin_Array(x) For k = 3 To last_WS With Sheets(k).Range("1:200") sh_Name = Worksheets(k).Name Set pointer_to_Element = .Find(find_Element, _ .Cells(.Cells.Count), xlValues, xlPart, xlByRows, _ xlNext, False) If pointer_to_Element Is Nothing Or "" Then find_Element = "Finished goods" End If Set pointer_to_Element = .Find(find_Element, _ .Cells(.Cells.Count), xlValues, xlPart, xlByRows, _ xlNext, False) pointer_Int_Row = CInt(pointer_to_Element.Row) Worksheets(k).Cells(pointer_Int_Row, lock_Array(k)).Copy Worksheets("EXTRACTIONS").Range("B16").Offset(, q).PasteSpecial xlPasteValues Worksheets("EXTRACTIONS").Range("B15").Offset(, q).Value = sh_Name q = q + 1 End With 

Question_1 :为什么总是抛出一个error

 If pointer_to_Element is Nothing or "" then 

问题2 :我用xlPart FindxlWhole ,但是如何在这张sheet缺less该元素时如何工作?

我怎样才能走到下sheet

| 如何在VBAish检查“土地和土地改善”的值是否不存在于Sheet并转到下一个Sheet ? (最好不要使用GoTo

这个

 If pointer_to_Element Is Nothing Or "" Then 

在语法上更为正确

 If pointer_to_Element Is Nothing Or pointer_to_Element = "" Then 

但是如果找不到任何内容, Range.Find方法将返回Nothing ,所以您只需要进行第一次检查:

 If pointer_to_Element Is Nothing Then 

对于你的问题的第二部分,你可以把所有剩下的代码放在Else块中。 也就是说,只有在find某个东西的时候才会执行其他的代码。 否则,它将继续到下一张纸。