如何在此自动过滤器公式中引用第一个可见单元格行?

时间:2018-06-06 20:25:59

标签: excel vba excel-vba

我在VBA中有代码将列F过滤为“X”值,然后转到列AS并选择第一个可见单元格:

PS_WS.Range("F:F").AutoFilter Field:=6, Criteria:="X"

lastrow3 = .Range("F" & Rows.Count).End(xlUp).Row
PS_WS.Range(.Range("AS")).SpecialCells(xlCellTypeVisible).Formula = ""

在.formula部分我不知道如何输入这个公式(= AR2-AX2),因为行号不是第2行。如何替换数字以引用该计算中的第一个可见单元格?

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,而不是使用可变单元格引用,一旦找到第一个可见单元格,您就可以使用FormulaR1C1方法。以下建议似乎给你你想要的东西,虽然我确信有更优雅的解决方案......

Sub FirstVisible()
    Dim LastRow3 As Long, c As Range
    ActiveSheet.Range("F:F").AutoFilter Field:=1, Criteria1:="X"
    LastRow3 = ActiveSheet.Range("F" & Rows.Count).End(xlUp).Row
    For Each c In ActiveSheet.Range("AS2:AS" & LastRow3)
        If c.EntireRow.Hidden = False Then
            c.FormulaR1C1 = "=RC[-1]-RC[5]"
            Exit Sub
        End If
    Next c
End Sub