頁: [1]
|
 |
|
作者
|
主題: 怎樣亂數化一堆排列? (閱讀 335 次)
|
Raikkonen
中學生
離線
文章: 42
|
我想得出以下的效果: 在A1至A10的格子,分別有A,B,C,D,E,F,G,H,I,J十個文字 按掣一次,程式會命令作一個猜亂 再將結果送到B1至B10的格子(例如猜亂成C,G,J,H,A,I,D,B,F,E)
還有請不要將A1和A10的格子的值空白了,維持原狀
謝謝 :)
|
|
|
|
|
已記錄
|
|
|
|
oobird
凸槌的木工
論壇維護群
離線
文章: 4229
|
Sub yy() Dim rng, i%, c(10) As Byte, arr, n% rng = [a1:a10] ReDim arr(1 To 10) For i = 1 To 10 1: n = Int(10 * Rnd + 1) If c(n) = 0 Then arr(i) = rng(n, 1): c(n) = 1 Else: GoTo 1 End If Next i [b1:b10] = Application.Transpose(arr) End Sub
|
|
|
|
|
已記錄
|
結廬待慧君;為使大家少猜題,請在附件中詳細說明 要求 和 效果,解決問題效率高。
|
|
|
Raikkonen
中學生
離線
文章: 42
|
謝謝 不過我還是有幾個問題:
For i = 1 To 10 1:n = Int(10 * Rnd + 1) If c(n) = 0 Then arr(i) = rng(n, 1): c(n) = 1 Else: GoTo 1 End If Next i
我不是很明白這幾句的用意 可否詳細解釋
|
|
|
|
|
已記錄
|
|
|
|
|
hsieh
|
Sub yy() Dim rng, i%, c(10) As Byte, arr, n% rng = [a1:a10] '把a1:a10的值設給rng陣列 ReDim arr(1 To 10) '定義一個索引值為1~10的陣列 For i = 1 To 10 1: n = Int(10 * Rnd + 1) '以亂數產生1個1~10之間的數值給變數n If c(n) = 0 Then '陣列c的第n個元素若為0 arr(i) = rng(n, 1): c(n) = 1 '把a1:a10的第n列的值賦予陣列arr第i個元素並將陣列c的第n個元素設為1 Else: GoTo 1 '否則跳到行號1執行 End If Next i [b1:b10] = Application.Transpose(arr) 'b1:b10的值為陣列arr的轉置 End Sub 參考看看
|
|
|
|
|
已記錄
|
回答滿意嗎? 記得告訴我哦!!
|
|
|
Raikkonen
中學生
離線
文章: 42
|
多謝oobird的程式及h大的指導 現在已經完全明白 
|
|
|
|
|
已記錄
|
|
|
|
|
頁: [1]
|
|
|
|