运行时错误' 91'在vba宏

时间:2016-02-01 21:33:37

标签: excel vba excel-vba

我正在尝试使用多个ifs来查找某些数据点,然后将某个列中的值粘贴到另一个工作表中。我得到运行时错误91.任何帮助将不胜感激。如果我删除And语句并从Rows更改为单元格它工作正常,但我介绍的方式似乎是问题。

Sub Macro2()
Dim Line As Long
Dim NewRange As Range
Dim MyCount As Long
MyCount = 1


For Line = 1 To 10000 Step 1
  If Cells(Line, 2) = "Farm2" And Cells(Line, 12) = "new" Then
      Set NewRange = Cells(Line, 1)
      End If

Next Line

NewRange.Copy Destination:=Worksheets("Farm2").Range("B18:B" & Rows.Count).SpecialCells(xlCellTypeBlanks)

1 个答案:

答案 0 :(得分:3)

您的代码假定已满足这两个条件且已设置NewRange。如果不满足条件且未设置NewRange,则最后一行将导致错误,因为没有要复制的范围对象。

您可以使用以下内容对此进行测试:

If Not NewRange Is Nothing Then
    NewRange.Copy Destination:=Worksheets("Farm2").Range("B18:B" & Rows.Count).SpecialCells(xlCellTypeBlanks)
Else
    MsgBox "NewRange has not been set!"
End If

更重要的是,请考虑Jeeped's comment代码的结构 - 特别是关于你如何在循环中工作。