作者nekomeow (總裁的房東)
看板Office
標題[問題] VBA字串排列組合問題
時間Sat Dec 17 22:25:43 2022
軟體:excel VBA
版本:2016
問題:總共有六欄項目(G~L),每欄各有3~8項不等資料,
想要做C6取2、C6取3、C6取4、C6取5、C6取6
寫了C6取2,卡在不知道如何排除重複的資料....有請版上大神指點迷津...搞一天惹...Orz
檔案:
Sub oneAoneC()
Dim Ante1 As Range
Dim 組合結果 As Range
Dim xStr As String
Dim xFN1, xFN2, xFN3 As Integer
Dim xSV1, xSV2, xSV3 As String
Worksheets("工作表").Activate
Set Ante1 = Range("A2:A34")
xStr = "-" 'Separator
Set 組合結果 = Range("E2")
For xFN1 = 1 To Ante1.Count
xSV1 = Ante1.Item(xFN1).Text
For xFN2 = 1 To Ante1.Count
xSV2 = Ante1.Item(xFN2).Text
組合結果.Value = xSV1 & xStr & xSV2
Set 組合結果 = 組合結果.Offset(1, 0)
Next
Next
End Sub
--
▉╯╰ ▅▃▂ ▂
▏ ╱ ╱ ╱
█ ╮╭
▆▅ ▂▅▆ ▎ ╱ █ ╱ ╱ █ ╱
▉ ◢▋ ▄▄ ▉ ◢▋ ╱ ████████████
▉ ▆█◤ ▊
▎ ▉ ▆█◤ ╱ ╱
█
█ ▋
▍ ▎ █ ████████████
▉
█ ▅▅ ▏ █ █ █"冰的啦"
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.230.94.14 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1671287160.A.B93.html
3F:→ nekomeow: 2F W大: 這方式我有試過,但沒辦法先做到C6取2,在做排 12/18 09:12
4F:→ nekomeow: 列組合 12/18 09:13
6F:推 waiter337: 這題可解 他要分別做兩次排列組合 12/19 03:55
7F:→ waiter337: 剛好可以練習遞迴 12/19 03:56
8F:推 waiter337: 但我的遞迴很差 正好拿這題練習中 12/19 03:57
9F:→ waiter337: 這題先別看文字 12/19 03:57
10F:→ waiter337: 第一次要列出 1-6任取3不重複的表 12/19 03:58
11F:→ waiter337: 依照表 取出三欄 12/19 03:59
12F:→ waiter337: 然後 再一次排列組合 遞迴每一列 12/19 04:00
13F:→ waiter337: 直到結束消滅。然後回到第一次的表的下一個 重複直到 12/19 04:02
14F:→ waiter337: 結束 12/19 04:02
15F:→ waiter337: 補充 上述取出的數字表 都是欄號列號順序參照用的數字 12/19 04:03
16F:→ waiter337: 所以 建議丟入陣列中 再把排列好的數字帶入 12/19 04:03
17F:→ waiter337: 利用數字 找到陣列欄列號 並提取出文字 12/19 04:04
18F:→ waiter337: 第一題 在對岸討論區 找得到 對岸大神還給出三種解 12/19 04:06
19F:→ waiter337: 第二題 就要自己想了 因為我也卡在這裡 12/19 04:06
20F:推 waiter337: 第一題的關鍵字 12/19 04:09
21F:→ waiter337: vba 排列 cm 取n 12/19 04:09
23F:→ waiter337: 今天先做到這裡 目前只有測試那頁能跑 12/19 19:16
24F:→ waiter337: 我也是第一次碰 遞迴+排列組合 不是很熟 目前未完工 12/19 19:18