如何仅偏移可见单元格

时间:2019-06-07 05:18:47

标签: excel vba

我正在编写一个VBA代码,其中必须从表头开始将一行向下精确地排一列。为此,我使用范围的Offset(1)属性。问题是我正在处理过滤后的数据,例如,偏移使我进入G2,而不是去Gx,其中x是表头之后的第一个可见行。我如何更好地做到这一点?谢谢

3 个答案:

答案 0 :(得分:3)

您可以尝试以下方法:

Sub selectFirstVisibleCell()

    Dim lastRow As Long
    lastRow = Cells(Rows.Count, "G").End(xlUp).Row

    Range("G1:G" & lastRow).Offset(1, 0).SpecialCells(xlCellTypeVisible).Areas(1).Rows(1).Select

End Sub

答案 1 :(得分:0)

ActiveSheet.AutoFilter.Range.Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row

答案 2 :(得分:0)

我通过修改@TheJaswi 代码解决了同样的问题,因为它对我不起作用并且将第一个列标题偏移到可见行:

'Getting Total columns count in the given table
col = Worksheets(1).ListObjects(1).ListColumns.Count
ActiveSheet.AutoFilter.Range.Offset(1, col - 1).SpecialCells(xlCellTypeVisible)(1).Select