首页 > 解决方案 > 在过滤范围内选择一列

问题描述

我试图在过滤范围内选择一列,但它一直选择第一个单元格。我已经过滤掉了表格,只需要选择实际的列(E 列),减去标题。

这是我目前拥有的:

            'After sorting, we will end up with several data rows for
            'which we will need to sort from. Now that we have a filtered table,
            'we would then need to created a variable for our new filtered range
            Dim DeliverableTablefltrdRng As Range
            Set DeliverableTablefltrdRng = rRange.SpecialCells(xlCellTypeVisible)
            
            'Now that we have all these sorted, we will then need to
            'verify whether the target finish date is within the start and end date
            
            Dim WorkOrderRange As Range

            Set WorkOrderRange = DeliverableTablefltrdRng.SpecialCells(xlCellTypeVisible).Range("E2:E" & Cells(Rows.Count, 1).End(xlUp).Row).Select

标签: excelvba

解决方案


无需事先提取可见单元格范围。请测试下一个方法:

Sub testSelectVisColRange()
  Dim sh As Worksheet, lastR As Long, WorkOrderRange As Range
  
 'your code filterring...
  Set sh = ActiveSheet
  lastR = sh.Range("E" & rows.count).End(xlUp).row
   Set WorkOrderRange = sh.Range("E2:E" & lastR).SpecialCells(xlCellTypeVisible)
   WorkOrderRange.Select
End Sub

代码应该有一种(简单)的方式来处理在没有任何可见单元格的情况下引发的错误,但这只是一个示例,显示了要遵循的方式......


推荐阅读