返回列表 上一主題 發帖

請問我想排除隨機號碼該怎編寫

請問我想排除隨機號碼該怎編寫

Private Sub Worksheet_Activate()
For i = 1 To 6
    工作表2.Cells(i, 1).Value = ""
Next
Dim A(6)
For i = 1 To 6
    A(i) = WorksheetFuntion.RandBetween(1, 42)
Next

For i = 1 To 6
    工作表2.Cells(i, 1).Value = A(i)
Next

End Sub

這是六個號碼隨機選號

若我接下來要編寫其中一個號碼手打自選,其他五個號碼不重複於自選號碼,且按F9能自動更新隨機號碼,該怎麼做。
80 字節以內
不支持自定義 Discuz! 代碼

Private Sub Worksheet_Calculate()
Do
[a2:a6] = "=RandBetween(1, 42)"
Loop Until [sumproduct(1/countif(a1:a6,a1:a6))] = 6
End Sub

TOP

感謝oobird版大的協助
當我複製上去 他出現一個執行階段錯誤13 型態不符合
當我去除這段敘述 他出現執行階段錯誤424
請問我該如何解決

我想將a1:a6全隨機
b2:b6隨機且排除手打自選b1
c3:c6隨機且排除手打自選c1.c2
d4:d6隨機且排除手打自選d1.d2.d3
e5:e6隨機且排除手打自選e1.e2.e3.e4
f6隨機且排除手打自選f1.f2.f3.f4.f5
且按下f9能使隨機號碼更新

由於小弟剛入門 再尋求解決問題方法 希望大家能指導 感謝
80 字節以內
不支持自定義 Discuz! 代碼

TOP

回復 3# jonlylovek
1. 出現錯誤原因應是你沒有引用分析工具箱增益集
而刪除該行後的程式又會出現因儲以0造成錯誤
請先勾選
工具/增益集
分析工具箱
然後再執行程式碼
2. 你在重算時也要避開手動輸入的值嗎?
學海無涯_不恥下問

TOP

嗯嗯 謝謝版主幫忙
重算的時候也要避開手動輸入值
80 字節以內
不支持自定義 Discuz! 代碼

TOP

        靜思自在 : 慈悲沒有敵人,智慧不起煩惱。
返回列表 上一主題