3
这是另一个奇怪的。Range.SpecialCells不同的结果
我有这个代码,它使用过滤器从一张表中获取数据,并使用Range.SpecialCells()
方法查找要复制和粘贴的相应行。但是,如果我使用了Rows().SpecialCells()
或者如果我使用SpecialCells
返回的范围的行属性,则行数是错误的。这就是我的意思:
With Worksheets("ret-" & sNumRet)
.EnableAutoFilter = True
.AutoFilter.Range.AutoFilter Field:=3, Criteria1:=sSection
iLast = Range("C1").End(xlDown).Row
numRows = .Range("B2:B" & iLast).SpecialCells(xlCellTypeVisible).Cells.Count
End With
这段代码产生大约8k行,这是一个有意义的数字。
With Worksheets("ret-" & sNumRet)
.EnableAutoFilter = True
.AutoFilter.Range.AutoFilter Field:=3, Criteria1:=sSection
iLast = Range("C1").End(xlDown).Row
numRows = .Rows("2:" & iLast).SpecialCells(xlCellTypeVisible).Rows.Count
End With
因此产生4。
With Worksheets("ret-" & sNumRet)
.EnableAutoFilter = True
.AutoFilter.Range.AutoFilter Field:=3, Criteria1:=sSection
iLast = Range("C1").End(xlDown).Row
numRows = .Range("B2:B" & iLast).SpecialCells(xlCellTypeVisible).Rows.Count
End With
也因此产生4。这两个当然都是错误的。我有45k行数据,我可以看到使用过滤器显示了至少几千个数据。这些陈述之间有什么意义上的差异?我希望他们在这里的背景下几乎是相同的。
谢谢!
...好知道:) –