複数の列を持つシートを持っています。列Dがテキストボックスの名前と一致する場合は、列Aに最も高い数値を表示します。ワークシート機能最大条件付き
これは、シート上で最後に使用した番号を表示するための数式です。
=MAX(INDEX((D2:D41=L11)*B2:B41,0))
私が午前問題は、このすべての値を最大数をオフに表示している私が持っているコードは、私は、これはVBA
'Cells with dates also return a value, and get covered for determining largest value. Percentages will convert and return numerics.
Dim rngVal As Range
Dim rngName as range
Dim Max As Double
Dim Name As String
'Set range from which to determine largest value
Set rngVal = sheets("Payment History").Range("B2:B41")
Set rngName = sheets("Payment History").Range("D2:D41")
Name = Me.TextBox1.value
'Worksheet function MAX returns the largest value in a range
Max = Application.WorksheetFunction.Max(rngVal)
'Displays largest value
MsgBox Max
End Sub
に変換するために得るカントです。
私は正しく理解していますか?数式は機能しています。しかし、あなたはVBAで式を再プログラムしたいのです(式で使われる関数を避ける)?どういうことなんですか?結果として得られるVBAコードソリューションのパフォーマンスは劣る可能性があります。 – Ralph
なぜ 'Evaluate(" MAX(IF& "rngName.Address&" = L11、 "&rngVal.Address&")) ')'を使うのはなぜですか? –
@Ralph、こんにちはRalph、はい、私はそれがコード化される必要がある理由は、私は別のシートのためのコードの大きな部分で動作することですので、私はそれをユーザーに伝えることができる必要があります最後の番号は選択した名前のため、次の番号を使用することができます。ありがとう – atame