Board logo

標題: [發問] InputBox功能的程式碼編寫。 [打印本頁]

作者: ziv976688    時間: 2016-11-23 18:55     標題: InputBox功能的程式碼編寫。

[attach]25889[/attach]
請問︰能填入5個欄位代碼的任意組合之InputBox(CrngA和與CrngB)程式碼要如何編寫?謝謝!

備註︰10=1個欄位,20=2個欄位,30=3個欄位,40=4個欄位,50=5個欄位

CrngA的功能 =可以填入10,20,30,40,50等5個欄位代碼的任意組合~~~~~
EX1︰10或20或30或40或50的單個代碼組合。
EX2︰10-20或10-30或20,40或20,50或10-50或10,30-50或10-30,50或20-40或20-50或...等混和型的代碼組合(組合之間以","作區隔)。

另以"-"表達連續多個欄位數的代碼︰  
10-20代表1個欄位和2個欄位的組合代碼。
10-30代表1個欄位和2個欄位和3個欄位的組合代碼。
10-40代表1個欄位和2個欄位和3個欄位和4個欄位的組代碼合。
10-50代表1個欄位和2個欄位和3個欄位和4個欄位和5個欄位的組合代碼。
10,30-40代表1個欄位和3個欄位和4個欄位的組合代碼。
.......其餘類推

CrngB的功能 = 與CrngA的功能相同。
作者: 葉國洲    時間: 2016-11-23 19:23

回復 1# ziv976688

欄位不多建議改為CrngA="1,3,4,5";CrngA="1,3"......等等
作者: ziv976688    時間: 2016-11-23 20:28

本帖最後由 ziv976688 於 2016-11-23 20:32 編輯

回復 2# 葉國洲
感謝建議~

因為共有7個欄位,以1~5個欄位作組合。
1個欄位有7個組合~10="-1-2-3-4-5-6-7"

2個欄位有21個組合~20 = "-12-13-14-15-16-17-23-24-25-26-27-34-35-36-37-45-46-47-56-57-67"

3個欄位有35個組合~30 = "-1,2,3-1,2,4-1,2,5-1,2,6-1,2,7-1,3,4-1,3,5-1,3,6-1,3,7-1,4,5-1,4,6-1,4,7-1,5,6-1,5,7-1,6,7-2,3,4-2,3,5-2,3,6-2,3,7-2,4,5-2,4,6-2,4,7-2,5,6-2,5,7-2,6,7-3,4,5-3,4,6-3,4,7-3,5,6-3,5,7-3,6,7-4,5,6-4,5,7-4,6,7-5,6,7"

4個欄位有35個組合~40 = "-1,2,3,4-1,2,3,5-1,2,3,6-1,2,3,7-1,2,4,5-1,2,4,6-1,2,4,7-1,2,5,6-1,2,5,7-1,2,6,7-1,3,4,5-1,3,4,6-1,3,4,7-1,3,5,6-1,3,5,7-1,3,6,7-1,4,5,6-1,4,5,7-1,4,6,7-1,5,6,7-2,3,4,5-2,3,4,6-2,3,4,7-2,3,5,6-2,3,5,7-2,3,6,7-2,4,5,6-2,4,5,7-2,4,6,7-2,5,6,7-3,4,5,6-3,4,5,7-3,4,6,7-3,5,6,7-4,5,6,7"

5個欄位有21個組合~50 ="-1,2,3,4,5-1,2,3,4,6-1,2,3,4,7-1,2,3,5,6-1,2,3,5,7-1,2,3,6,7-1,2,4,5,6-1,2,4,5,7-1,2,4,6,7-1,2,5,6,7-1,3,4,5,6-1,3,4,5,7-1,3,4,6,7-1,3,5,6,7-1,4,5,6,7-2,3,4,5,6-2,3,4,5,7-2,3,4,6,7-2,3,5,6,7-2,4,5,6,7-3,4,5,6,7"

所以在 InputBox填入1,2,3,4,5,6,7表示各1個欄位或12,13,....,34567表示其它欄位組合~不太適用。

另外當產生各欄位組合的資料夾或效果檔也必須依指定欄位組合自動分類^^
作者: ziv976688    時間: 2016-11-25 10:08

回復 2# 葉國洲

抱歉!我好像誤會了您的意思~~~~~~~

先試試看再說^^
作者: 准提部林    時間: 2016-11-25 10:18

本帖最後由 准提部林 於 2016-11-25 10:20 編輯

Sub W_TEST()
InputStr$ = "1,3-5,7"
For Each A In Split(InputStr, ",")
  b = Split(A & "-" & A, "-")
  For i = b(0) To b(1)
    TT = Trim(TT & " " & i)
  Next i
Next
If TT = "" Then Exit Sub
MsgBox TT

ar = Split(TT, " ")
For Each a In ar
  MsgBox a
Next
End Sub

只示意用,可自行套看看∼∼
 
作者: 葉國洲    時間: 2016-11-25 11:05

回復 4# ziv976688


    我也不知道你取多少組合,我看你樓上的意思是要7選1到5欄
然後再列出所有組合到新工作表嗎
作者: ziv976688    時間: 2016-11-25 21:26

回復 5# 准提部林
感謝您的指導。

我試行看看!感恩!
作者: ziv976688    時間: 2016-11-25 21:52

回復 6# 葉國洲
我的訴求很單純
:CrngA的功能 =可以填入10,20,30,40,50等5個欄位代碼(識別碼)的任意組合~~~~~
EX1︰10或20或30或40或50的單個代碼(識別碼)組合。
EX2︰10-20或10-30或20,40或20,50或10-50或10,30-50或10-30,50或20-40或20-50或...等混和型的代碼(識別碼)組合(組合之間以","作區隔)。

看了准提部林大大的提示後,應該是我的思考方向錯誤。
先依據准提的提示自寫看看~~有問題再上來請教。謝謝!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)