標題: [發問] 無交集數值的工作表 [打印本頁]
作者: papaya 時間: 2021-7-17 00:06 標題: 無交集數值的工作表
[attach]33664[/attach]
Dim Number, INnum()
If Number = "1-49" Then
ReDim Preserve INnum(48)
For i = 0 To 48
INnum(i) = i + 1
Next
ElseIf Number = 0 Then
ReDim Preserve INnum(6)
ReNumber = 1
ElseIf Number = "" Then
ReDim Preserve INnum(0)
ReNumber = 0
End If
藍色部分的程式碼~只能產生如說明檔的J12:P12和R12:X12有>0個的交集數字(01~49)的工作表~
EX:Sheet1有交集數字 = 49 Sheet2有交集數字 = 16和23
如果當J12:P12和R12:X12沒有任何1個交集數字時,其工作表也能產生~
EX:Sheet3和Sheet4
詳如附件。
請問:如果想不受 If Number = "1-49" Then 的影響(限制)時,藍色部分的程式碼應如何修正?
謝謝!
作者: singo1232001 時間: 2021-7-17 02:10
回復 1# papaya
你的敘述有點模糊
大致上先討論一下
如果我沒猜錯 實際上是
if Number = "1-49" then 寫錯 所以永遠這行不會執行
這行的意思是
如果Number 的文字 並非 ("1-49" 這個4個字元字串) 的情況下 就是false
那麼根據目前的狀況來說
表中並沒有"1-49"的國文字串
正確寫法應該要改成
if --Number >= 1 and --Number <= 49 then
這樣才是判斷 當前數字是否介於1~49的數字
if --Number >= 1 and --Number <= 49 then
ReDim Preserve INnum(48)
For i = 0 To 48
INnum(i) = i + 1
Next
ElseIf Number = 0 Then
ReDim Preserve INnum(6)
ReNumber = 1
ElseIf Number = "" Then
ReDim Preserve INnum(0)
ReNumber = 0
End If
作者: papaya 時間: 2021-7-17 03:52
本帖最後由 papaya 於 2021-7-17 04:07 編輯
回復 2# singo1232001
不好意思,沒說清楚~這是我在網上節錄的~
If Number = "1-49" Then
ReDim Preserve INnum(48)
For i = 0 To 48
INnum(i) = i + 1
Next
ElseIf Number = 0 Then
ReDim Preserve INnum(6)
ReNumber = 1 '列8
Else
m1 = 0
sta = 1
For i = 2 To Len(Number) + 1
If Mid(Number, i, 1) = "," Or i > Len(Number) Then
ReDim Preserve INnum(m1)
INnum(m1) = --Mid(Number, sta, i - sta)
sta = i + 1
m1 = m1 + 1
End If
If Mid(Number, i, 1) = "-" Then
ReDim Preserve INnum(m1)
INnum(m1) = --Mid(Number, sta, i - sta)
m1 = m1 + 1
For j = i + 1 To i + 3
If Mid(Number, j, 1) = "," Or j > Len(Number) Then
For k = Mid(Number, sta, i - sta) + 1 To Mid(Number, i + 1, j - (i + 1))
ReDim Preserve INnum(m1)
INnum(m1) = k
m1 = m1 + 1
Next
sta = j + 1
i = j
Exit For
End If
Next
If j > Len(Number) Then Exit For
End If
Next
End If
以上的程式碼,執行一切正常~都是能產生有01~49之各=1個交集號碼的工作表。
因為我想包括沒有(即=0個)交集的工作表也能全部產生,所以才在列9插入
ElseIf Number = "" Then
ReDim Preserve INnum(0)
ReNumber = 0
只是測試後,還是只會產生有1~49之各>=1個交集號碼的工作表。
因此上論壇請教 : 如何修正我自行插入的程式碼 ?
謝謝!
作者: papaya 時間: 2021-7-17 07:33
本帖最後由 papaya 於 2021-7-17 07:37 編輯
回復 2# singo1232001
包括沒有(即=0個)交集修正為包括沒有(即>=0個)交集號碼
不過,仔細研究節錄的原程式碼 :
If Number = "1-49" Then
ReDimPreserve INnum(48)
For i = 0 To48
INnum(i) = i + 1
Next
是要抓有1~49中的任=1個交集號碼之工作表
ElseIf Number = 0 Then
ReDimPreserve INnum(6)
ReNumber =1 '列8
是要抓有指定的某7個號碼中的任=1個交集號碼之工作表
目前我在列9插入的程式碼~
ElseIf Number ="" Then
ReDim Preserve INnum(0)
ReNumber = 0
測試後~會跑出有1~49中的任>=1個交集號碼之工作表
因為既是要抓交集號碼的程式碼,所以我想將插入的程式碼~
修正為要抓有1~49中的任>=0個交集號碼之工作表~會不會是無解 ?
作者: singo1232001 時間: 2021-7-17 10:56
回復 4# papaya
抱歉 不是很清楚你要的需求
我先隨便做看看
作者: papaya 時間: 2021-7-17 11:28
回復 5# singo1232001
謝謝您這麼熱心的幫忙
我列出的只是設立InputBox(填入號碼)的程式碼,
所以如無法就插入列9的程式碼作修正,
這一題應是無解了~
再次謝謝您!
作者: papaya 時間: 2021-7-17 12:09
修正~
請將附件的Sheet4!X12改為06~這樣才符合說明。
謝謝!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/) |
|