在Range - VBA中找不到值时出错

时间:2014-05-14 11:50:47

标签: excel excel-vba vba

我创建了VBA代码来对Stock列表进行排序,读取N列的内容并将任何匹配项目的行(在本例中为" KS")复制到一个单独的标签中。

我的代码运行正常,除非在Stock表格中找不到实例。 "错误是91 - 对象变量或没有设置块变量" 我尝试过If Not的变种但没有成功。我确信这是一个基本上简单的事情,但答案暗示了我。

建议将不胜感激。

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

1 个答案:

答案 0 :(得分: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