我有一个要过滤值的列:
现在我想只在已过滤的单元格上循环
这就是我所做的:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
...
ArrayList<String> list = new ArrayList<String>();
list.add("item1");
list.add("item2");
MyCustomAdapter adapter = new MyCustomAdapter(list, this);
ListView listView = (ListView) getView().findViewById(R.id.listView_fragone);
listView.setAdapter(adapter);
...
}
但我有超过50000个细胞...有更快的方法吗?
答案 0 :(得分:1)
您可以使用以下方法找到过滤的单元格:
ActiveSheet.range("valid range for column").Rows.SpecialCells(xlCellTypeVisible)
然后你可以迭代结果并做一些事情。
例如,当我有一张桌子时,我可以这样做:
Dim lastRow
lastRow = ActiveSheet.ListObjects("Table1").range.Rows.Count
Dim range
Set range = ActiveSheet.range("A2:A" & lastRow).Rows.SpecialCells(xlCellTypeVisible)
For Each rCell In range.Cells
MsgBox rCell.Value
Next rCell
答案 1 :(得分:1)
使用SpecialCells
对象的range
方法
with ws.Columns(1).SpecialCells(xlCellTypeVisible)
'... do something.
' for instance: .Font.Bold = True
end with
其中ws
是要使用其列“A”的工作表对象