返回列表 上一主題 發帖

[發問] InputBox功能的程式碼編寫。

[發問] InputBox功能的程式碼編寫。

InputBox-1.rar (47.75 KB)
請問︰能填入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的功能相同。

回復 1# ziv976688

欄位不多建議改為CrngA="1,3,4,5";CrngA="1,3"......等等

TOP

本帖最後由 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表示其它欄位組合~不太適用。

另外當產生各欄位組合的資料夾或效果檔也必須依指定欄位組合自動分類^^

TOP

回復 2# 葉國洲

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

先試試看再說^^

TOP

本帖最後由 准提部林 於 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

只示意用,可自行套看看∼∼
 
EXCEL參考資料:
http://blog.xuite.net/smile1000mile/blog

TOP

回復 4# ziv976688


    我也不知道你取多少組合,我看你樓上的意思是要7選1到5欄
然後再列出所有組合到新工作表嗎

TOP

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

我試行看看!感恩!

TOP

回復 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或...等混和型的代碼(識別碼)組合(組合之間以","作區隔)。

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

TOP

        靜思自在 : 有智慧才能分辨善惡邪正;有謙虛才能建立美滿人生。
返回列表 上一主題