2017-03-06 23 views
0

A2〜A999の範囲内のセルの最大値を検索しようとしています。私はそれぞれのループをループするようにしましたが、最大rcellを見つけるためにロジックに問題がありました。 rcell.max関数が組み込まれていることを期待していましたか?VBA内の列の最大値を見つける

Set rng = loopset.range("A2-A999") 
For Each rcell in rrng.cells 
'Find the max rcell 
Next rcell 
+4

:値のリストから、基本的なロジックはこれです 'MaxValueを= application.worksheetfunction.max(RNG)' –

+0

ああ、[OK]を。私はそれが存在することを認識していませんでした。私はそれを試みます。 thx – nas

+0

この関数は機能しますが、これを利用して左の列のMaxValueと同じ行の値を見つけることができます。たとえば、MaxValueがXであり、その左側の列に値の温度があり、その同じ行で温度とは何か、つまり左にある列と同じ行の値。これは可能ですか?たぶん別のforループが必要で、何とか行の反復を保存する必要がありますか? – nas

答えて

3

Application.worksheetfunction.max(range("a:a"))述べたようにあなたが実際に機能application.worksheetfunction.max(RNG)を使用することができます

2

のためにそれを行うだろう。もう少し完全な答えを得るために、ワークシートで利用可能なほぼすべてのExcel式を、VBAコードウィンドウでapplication.worksheet関数コレクションを使用して使用することができます。これには、max、min、sumif、vlookupなどが含まれます。

これは、ワークシート上で関数を使用するときに行う関数に関わる引数の画面上の説明と同じです。しかし、別の使用方法が指摘されているように、application.max(range)を使用しても同じ引数のヘルプは得られません。同じユーザが指摘しているように、application.max(rng)とworksheetfunction.max(rng)を使用した場合のエラー処理の違いは、以下のコメントで確認できます

プログラミングロジックが最大値worksheetfunction使用しない理由

max = 0 'set "inital" max 
For Each rcell in rrng.cells 'loop through values 
    if rcell.value > max then 'if a value is larger than the old max, 
    max = rcell.value ' store it as the new max! 
Next rcell 
+1

この回答は誤解を招くことです。 'Application.WorksheetFunction.Max(...)'は早期にバインドされており、絶対にパラメータツールチップを取得します。拡張された 'Application.Max(...)'バージョンと混乱しています。このバージョンは、拡張された 'Application'インターフェースから動作し、実際にはツールチップを提供しませんが、 (実行時に解決されます)。 2つの最も顕著な違いは、ツールチップではなく、エラーを処理する方法です。初期バインドはランタイムエラーを発生させ、遅延バインド*はエラー値を 'Variant'の形で返します。 –

+0

大丈夫、私の答えを改善してくれてありがとう。それは本当にdownvoteの価値があったのですか?ただ助けようとしています – Yoav24

+0

あなたの答えには間違った情報が含まれています。ダウンボートは、特に、この回答が間違っていることを訪問者に伝えるためのものです。*はい、ダウンボートは正当です。一度あなたがそれを編集したら、それを取り戻すことができます。 –

関連する問題