Microsoft Excelで3つのユニークなランダムな番号を生成
一意の乱数のリストを生成する場合は、RANDBETWEEN関数とVBARNDを使用できます。この記事では、提供されたリストから3つの一意の番号を生成します。
元の質問を見つけることができますhttp://www.excelforum.com/excel-programming-vba-macros/1093315-vba-for-do-while-loop.html [ここ]
質問:A列に保存されている数値のリストから3つの乱数のリストを生成するマクロが必要です。VBAコードを処理する必要があるという条件があります。条件は、列Bに3つの番号が存在するため、マクロは列Bに一度も発生していない番号のリストを作成する必要があります。このようにして、列BとCに一意の番号のリストを作成できます。 ||||以下は、私たちが持っている例のスナップショットです:
===
一意の乱数のリストを取得するには; VBエディターを起動するには、以下の手順に従う必要があります。[開発者]タブをクリックします。[コード]グループから[VisualBasic]を選択します
-
以下のコードを標準モジュールにコピーします
マクロを実行するには、Visual Basic Editorの画面でアクティブになっている場合、キーボードからF5キーを押すことができます。マクロを実行する別の方法は、「ALT + F8」キーを使用することです。マクロを選択し、[実行]ボタンをクリックします
Sub RandomNumbers() Dim ws As Worksheet Dim ar As Variant Dim RandomNum As Long Dim i As Integer Dim myVal As Long Randomize Set ws = ThisWorkbook.Sheets("Numbers") With ws ar = .Range("A" & Rows.Count).End(xlUp).Row .Range("C1:C3").ClearContents For i = 1 To 3 Do RandomNum = Int((1 - ar + 1) * Rnd + ar) myVal = .Range("A" & RandomNum).Value Loop Until Range("B1:C24").Find(what:=myVal, lookat:=xlWhole) Is Nothing .Range("C" & i).Value = myVal Next i End With End Sub
-
VBAコードを実行すると、番号の一意のリストが自動的に生成されます
コードの説明:
上記のコードでは、RND&INT関数とForループおよびDoループを使用して結果を取得します。
-
Dimwsをワークシートとして宣言します。 wsをワークシートとして宣言する目的は、特定のワークシートでのみコードを実行することです。つまり、
この例の数値DimRandomNum As Long:これにより一意の数値が保存されますSet ws = ThisWorkbook.Sheets( “Numbers”):この行は、コードが数値シートでのみ実行されるようにしますコードの次の行はWithステートメントar = .Range( “A”&Rows.Count).End(xlUp).Row:この行は、列Aの最後のセル(この例では24)を保存します
私たちのブログが気に入ったら、Facebookで友達と共有してください。また、TwitterやFacebookでフォローすることもできます。
_私たちはあなたからの連絡をお待ちしております。私たちの仕事を改善、補完、または革新し、あなたのためにそれをより良くする方法を教えてください。 [email protected]_までご連絡ください