2014-05-14 39 views
1

我創建了VBA代碼來對庫存列表進行排序,讀取N列的內容,並將任何匹配項(在本例中爲「KS」)的行復制到單獨的選項卡中。當在Range中找不到值時發生錯誤-VBA

我的代碼正常運行,除非在庫存表中找不到實例。 「錯誤是91 - 對象變量或With塊變量未設置」 我試過如果不是沒有成功的變體。我確信這是一件非常簡單的事情,但答案暗指我。

建議,將不勝感激。

Sub KS() 
    Dim MyRange, MyRange1 As Range 
    Sheets("Stock").Select 
    LastRow = Sheets("Stock").Range("K65536").End(xlUp).Row 
    Set MyRange = Sheets("Stock").Range("N1:N325" & LastRow) 

    For Each c In MyRange 
     If c.Value = "KS" Then 
      If MyRange1 Is Nothing Then 
       Set MyRange1 = c.EntireRow 
      Else 
       Set MyRange1 = Union(MyRange1, c.EntireRow) 
      End If 
     End If 
    Next 

    MyRange1.Select 
    Selection.Copy 
    Sheets("KS").Select 
    Range("A1").Select 
    ActiveSheet.Paste 
End Sub 

回答

3

MyRangeNothing如果沒有匹配值,因此嘗試這種

新線

If Not MyRange1 Is Nothing Then MyRange1.Copy Sheets("KS").[a1] 

作爲代替

刪除線

MyRange1.Select 
Selection.Copy 
Sheets("KS").Select 
Range("A1").Select 
ActiveSheet.Paste 
+1

謝謝,那是一種享受。 –

+0

+1並祝賀25k :) –

相關問題