我有以下示例代码可以过滤出数据并粘贴到另一张纸上。
为了避免这种情况,我已经使用了非空值,但是我仍然出现“无单元格”错误,并且我还确定标记为“无单元格”的文件实际上应该具有符合条件的数据。
Set vFind = Range("B2:B" & lastRow).Find(what:="0", LookIn:=xlValues, lookat:=xlWhole)
If Not vFind Is Nothing Then
filterRange.AutoFilter Field:=2, Criteria1:="=0"
copyRange1.SpecialCells(xlCellTypeVisible).Copy Destination:=thisws.Cells(RowNo, 3)
copyRange2.SpecialCells(xlCellTypeVisible).Copy Destination:=thisws.Cells(RowNo, 4)
答案 0 :(得分:2)
您拥有的代码将使用当前活动工作表中的Range("B2:B" & lastRow)
。
为确保您获取正确的数据,请尝试在Range
调用之前添加工作表名称,如下所示:
Worksheets("SheetName").Activate
Set vFind = Worksheets("SheetName").Range("B2:B" & lastRow).Find(what:="0", LookIn:=xlValues, lookat:=xlWhole)
If Not vFind Is Nothing Then
filterRange.AutoFilter Field:=2, Criteria1:="=0"
copyRange1.SpecialCells(xlCellTypeVisible).Copy Destination:=thisws.Cells(RowNo, 3)
copyRange2.SpecialCells(xlCellTypeVisible).Copy Destination:=thisws.Cells(RowNo, 4)