昱得資訊工作室
麻辣學園
歡迎光臨, 訪客. 請先 登入註冊一個帳號.
您忘了 啟用您的帳號嗎?
2008-07-07, 07:41:54
首頁 說明 登入 註冊 贊助論壇 想當作者?
新聞: 會員注意!!麻辣家族討論區[通用版規],請詳閱!!


+  麻辣家族討論區
|-+  MS Office 系列
| |-+  EXCEL
| | |-+  Excel程式區 (版主: hsieh)
| | | |-+  怎樣亂數化一堆排列?
0 會員 以及 1 訪客 正在閱讀本篇主題. « 上一篇主題 下一篇主題 »
頁: [1] 向下 列印
作者 主題: 怎樣亂數化一堆排列?  (閱讀 335 次)
Raikkonen
中學生
*
離線 離線

文章: 42


怎樣亂數化一堆排列?
« 於: 2008-05-11, 14:01:29 »

我想得出以下的效果:
在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


Re: 怎樣亂數化一堆排列?
« 回覆文章 #1 於: 2008-05-11, 16:21:39 »

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


Re: 怎樣亂數化一堆排列?
« 回覆文章 #2 於: 2008-05-11, 18:29:06 »

謝謝
不過我還是有幾個問題:

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
版主
*
在線 在線

會員性別: 男
文章: 3697



Re: 怎樣亂數化一堆排列?
« 回覆文章 #3 於: 2008-05-11, 23:16:00 »

程式碼:
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


Re: 怎樣亂數化一堆排列?
« 回覆文章 #4 於: 2008-05-12, 00:50:21 »

多謝oobird的程式及h大的指導
現在已經完全明白

Wink
已記錄
頁: [1] 向上 列印 
« 上一篇主題 下一篇主題 »
跳到:  


本頁花了 0.243 秒, 以及 20 次的資料庫查詢.