返回列表 上一主題 發帖

[發問] [請教] 關於 Select Case ... End Select 程式簡化問題

[發問] [請教] 關於 Select Case ... End Select 程式簡化問題

[問題]
因為陣列內判斷元件的序號值(ID Code)是處於第N區域 (N為10個1組)
但是用以下程式碼 ,區域少是可行,一旦區域多,整個程式碼行數就會暴增
有試著在陣列 n=1  ....  n=n+1 當中判斷
但是 可能是小弟功夫不到家,判斷之後,反而整區塊的 Text 不顯示(應該是說讀不到)
不知道是否有比較簡易的判斷可以處理這種情況?




原程式碼如下
  1.                
  2.           For ksj = 1 To nn
  3.                     Select Case ksj
  4.                         Case 1 To 10
  5.                             btuarray(usx1, usy1).Text = "第 1 區域" & "  第" & " " & ksj - 1 & " " & "區塊"
  6.                         Case 11 To 20
  7.                             btuarray(usx1, usy1).Text = "第 2 區域" & "  第" & " " & ksj - 1 & " " & "區塊"
  8.                         Case 21 To 30
  9.                             btuarray(usx1, usy1).Text = "第 3 區域" & "  第" & " " & ksj - 1 & " " & "區塊"
  10.                         Case 31 To 40
  11.                             btuarray(usx1, usy1).Text = "第 4 區域" & "  第" & " " & ksj - 1 & " " & "區塊"
  12.                         Case 41 To 50
  13.                             btuarray(usx1, usy1).Text = "第 5 區域" & "  第" & " " & ksj - 1 & " " & "區塊"
  14.                         Case 51 To 60
  15.                             btuarray(usx1, usy1).Text = "第 6 區域" & "  第" & " " & ksj - 1 & " " & "區塊"
  16.                         Case 61 To 70
  17.                             btuarray(usx1, usy1).Text = "第 7 區域" & "  第" & " " & ksj - 1 & " " & "區塊"
  18.                         Case 71 To 80
  19.                             btuarray(usx1, usy1).Text = "第 8 區域" & "  第" & " " & ksj - 1 & " " & "區塊"
  20.                         Case 81 To 90
  21.                             btuarray(usx1, usy1).Text = "第 9 區域" & "  第" & " " & ksj - 1 & " " & "區塊"
  22.                         Case 91 To 100
  23.                             btuarray(usx1, usy1).Text = "第 10 區域" & "  第" & " " & ksj - 1 & " " & "區塊"
  24.                         Case 101 To 110
  25.                             btuarray(usx1, usy1).Text = "第 11 區域" & "  第" & " " & ksj - 1 & " " & "區塊"
  26.                         Case 111 To 120
  27.                             btuarray(usx1, usy1).Text = "第 12 區域" & "  第" & " " & ksj - 1 & " " & "區塊"
  28.                         Case 121 To 130
  29.                             btuarray(usx1, usy1).Text = "第 13 區域" & "  第" & " " & ksj - 1 & " " & "區塊"
  30.                     End Select
  31.                 Next
複製代碼

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

回復 2# GBKEE


    [ To GBKEE  大大]
    會變成  1-10 區塊 消失
    而 11 - 130 區塊  會以10個為一組的方式 固定數值(如 11 ~ 20 區塊 會變成  第二區域 第20區塊 )...
    請問這是甚麼原因?
   

        [ To alexliou   大大]
     您的方法似乎是將變數(N) 設定至 sheet內,但這似乎不是小弟想要的,感謝您教導

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

本帖最後由 mark15jill 於 2012-12-22 10:18 編輯

[ To GBKEE  大大]
                  已解決...
                  小弟剛剛重新編寫,發現疏忽掉一個點... "nn"
                    For ksj = 1 To nn Step 10
                        .Text = "第 " & Int(ksj / 10) + 1 & " 區域  第  " & nn & " 區塊"
                    Next
                  變成單循環+nn 然後區域用 大大您所教導的整數判斷..
                  因之前問題是出在 區塊可以正常判讀,區域不行..
                 小弟將區域的部分替換,區塊仍不更改,問題就解決了。
     

        [ To alexliou   大大]
                  抱歉,小弟才疏學淺,將大大您所教導的誤認為其他方面。



感謝兩位大大的指教..


呈現出來的結果會變成..
1-10  第一區域 的 第1~10區塊
11-20  第二區域 的 第1~10區塊

以此類推..

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

        靜思自在 : 要比誰更受誰.不要比誰更怕誰。
返回列表 上一主題