bugfix> excel > 投稿

列Fを "X"値にフィルターし、列ASに移動して最初の表示セルを選択するコードがVBAにあります。

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パートでは、行番号が行2にならないため、この式(= AR2-AX2)の入力方法がわかりません。計算で最初に表示されるセルを参照するように番号を置き換えるにはどうすればよいですか?

回答 1 件
  • 可変セル参照を使用する代わりに、問題を正しく理解していれば、最初に表示されるセルが見つかったら、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
    
    

あなたの答え