以下は1 and 10
の間のランダム値を返すことになっていますが、これはまだcolumn A
にありません。ランダム値を見つけ出してループを終了するという点ではうまくいきますが、=Ang()
を使用して呼び出すとExcelでは#Value!
が返されます。VBA関数が呼び出されたときに#VALUEを返す
Function Ang()
i = 0
Do
i = Application.WorksheetFunction.RandBetween(1, 10)
Ang = i
MsgBox Ang
Loop While Application.WorksheetFunction.IfNa(Application.WorksheetFunction.Match(i, Worksheets("Sheet2").Range("A:A"), 0), 0)
End Function
msgboxの行を削除してください –
@PatrickHonorezこれは私が第二に考えている助言ですが、それは問題の原因ではありません。 – GSerg
[Excel VBAの可能な重複:一致することができません、 "WorksheetFunctionクラスのMatchプロパティを取得できません"](https://stackoverflow.com/q/17751443/11683) – GSerg