我正在尝试使用多个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)
答案 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代码的结构 - 特别是关于你如何在循环中工作。