Excel関数をVBAコードに変更しようとしています。コルAC、行2で、下記式... =IF(ROWS($1:1)< MATCH(0.01,H$2:H$10)+1,"",INDEX(X:X,ROWS($1:1)-MATCH(0.01,H$2:H$10)+1))
VBAインデックスとマッチ関数を比較する
...この式は、コルHの行の最初なしゼロ値を探しコルH.
の最初の10行をスキャンその行が見つかると、Col ACの行がCol ACの行がCol Hの最初の非ゼロ値の行と一致するようにCol ACの値が出力されます。
センス。これは、Excelワークシートで完璧に動作します。さて、私はVBAコードにそれを変更したいと思い、ここに
For i = 2 To lengthRows
With Application.WorksheetFunction
Range("AC" & i) = .IF(Rows(1) < .Match(0.01, Range("H2:H10")) + 1, "", .Index(Columns(24), Rows(1) - .Match(0.01, Range("H2:H10")) + 1))
End With
Next i
...行は、(1)最初の行と列(24)であるコルXの
です...私が持っているものですコードを実行すると、ランタイムエラーが一致しません'13:型が一致しません。
私はこの前の質問には答えられたかを理解しようとしています:Excel VBA: how to solve Index and Match function type mismatch error
を使用することができます( 'MATCHを使用しています0.01、H $ 2:H $ 10) 'は、値0.01を探しています。値が0でない値ではなく、セルが0.2の場合、' Match'はそれを返しません。あなたの 'Match'を' MATCH(0.01、H $ 2:H $ 10、-1) 'に変更する必要があります.3番目のパラメータは' -1'に相当し、 '0.01'より大きい値を探していることを意味します。 –