2015-06-29 153 views
1

假设的行号列表,我有如下表:检索仅可见单元格

Toto B June 12pm 
Titi A April 11pm 
Toto D January 9am 
Toto F December 8am 

我想在每行提取一些数据和填充logsheet。我已经完成了为整个数据工作的宏。然而,我只需要提取现在选择的数据,比方说只有第一列等于“Toto”的数据。

为此,我使用自动筛选手动(用户友好),然后使用

LastLine = Range("A" & Rows.Count).End(xlUp).Row 
Export_Range = Workbook.Sheets(1).Range("A2:A" & LastLine).Rows.SpecialCells(xlCellTypeVisible) 

为避免重复宏只提取可见单元格符合条件的,我想知道是否有是输出符合标准的行号列表的一种方式。我有一点搜索,我没有幸运。任何想法?

+0

有几种方法。您可以使用循环来选择在Range范围内进行哪些迭代,并有选择地将实例复制到日志文件中。你也可以尝试加入一个'AutoFilter'。在没有看到全部代码的情况下很难最好地帮助你。 – user3561813

回答

1

这将一一列举:

Sub ListThem() 
    Lastline = Range("A" & Rows.Count).End(xlUp).Row 
    msg = "" 

    For Each r In Range("A2:A" & Lastline).Cells.SpecialCells(xlCellTypeVisible) 
     msg = msg & r.Row & vbCrLf 
    Next r 
    MsgBox msg 
End Sub 

这假定自动筛选已应用。

+0

这是一个好的开始。可以存储在列表或向量结构中吗?我更习惯于python,所以我所指的是类似于msg [i] = r.Row。 – TazgerO

+0

我将你建议的for循环替换为用于我的宏的循环。它的工作不需要导出行号列表。我觉得有点愚蠢,以前没有想过。无论如何感谢您的帮助,并指出我的修复。 – TazgerO

相关问题