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