我在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行。如何替换数字以引用该计算中的第一个可见单元格?
答案 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