Board logo

標題: [發問] 請問 Select Case 的用法 [打印本頁]

作者: 52ee24    時間: 2015-4-21 11:24     標題: 請問 Select Case 的用法

請問各位達人
以下有什麼地方我寫錯了
我希望它判斷e欄如是以下字串的話
就分別為A、B、C再帶入f欄中
但不知哪錯了
請各位達人幫幫忙了
謝謝
Dim QQ As Long
QQ = Range("A2").CurrentRegion.Rows.Count
Dim ZZ As Long
Dim Z1 As Long
For i = 2 To QQ
ZZ = Range("F" & i) = Z1

    Select Case Z1
        Case Range("E" & i) = "01", "05", "21", "25", "26", "30", "46", "50", "51", "71", "75"
             Z1 = "C"
        Case Range("E" & i) = "02", "03", "04", "06", "10", "11", "15", "16", "20", "22", "23", "24" _
                            , "27", "28", "29", "31", "35", "36", "40", "41", "45", "47", "48", "49" _
                            , "52", "53", "54", "56", "60", "61", "65", "66", "70", "72", "73", "74"
             Z1 = "B"
        Case Range("E" & i) = "07", "08", "09", "12", "13", "14", "17", "18", "19" _
                            , "32", "33", "34", "37", "38", "39", "42", "43", "44" _
                            , "57", "58", "59", "62", "63", "64", "67", "68", "69"
             Z1 = "A"
    End Select
Next i
作者: tyrone123456    時間: 2015-4-21 13:51

回復 1# 52ee24

你已經定義Z1是Long,可是你裡面又說Z1="C"〈這是String〉,所以GG了,
另外  ZZ = Range("F" & i) = Z1  這個寫法的用意,很怪,我不了解你的用意
作者: PKKO    時間: 2015-4-21 13:52

請問各位達人
以下有什麼地方我寫錯了
我希望它判斷e欄如是以下字串的話
就分別為A、B、C再帶入f欄中
但 ...
52ee24 發表於 2015-4-21 11:24


Dim QQ As Long
QQ = Range("A2").CurrentRegion.Rows.Count

For i = 2 To QQ
ZZ = Range("F" & i)

    Select Case ZZ
        Case  "01", "05", "21", "25", "26", "30", "46", "50", "51", "71", "75"
             Z1 = "C"
        Case  "02", "03", "04", "06", "10", "11", "15", "16", "20", "22", "23", "24" _
                            , "27", "28", "29", "31", "35", "36", "40", "41", "45", "47", "48", "49" _
                            , "52", "53", "54", "56", "60", "61", "65", "66", "70", "72", "73", "74"
             Z1 = "B"
        Case  "07", "08", "09", "12", "13", "14", "17", "18", "19" _
                            , "32", "33", "34", "37", "38", "39", "42", "43", "44" _
                            , "57", "58", "59", "62", "63", "64", "67", "68", "69"
             Z1 = "A"
    End Select
Next i
作者: 52ee24    時間: 2015-4-21 14:06

本帖最後由 52ee24 於 2015-4-21 14:07 編輯

回復 2# tyrone123456


    t大,這是因為猜不出到底那寫錯了,在亂寫的,請別在意
把定義改成字串也跑不出來∼
作者: 52ee24    時間: 2015-4-21 14:24

回復 3# PKKO


    P大你好
   還是沒辦法跑出來
   看你改寫的方式,是可以不用寫出E欄"01~75"值嗎
作者: PKKO    時間: 2015-4-21 14:33

回復  PKKO


    P大你好
   還是沒辦法跑出來
   看你改寫的方式,是可以不用寫出E欄"01~75"值嗎
52ee24 發表於 2015-4-21 14:24


我測試過可以執行~你把有問題的地方PO上來

看你改寫的方式,是可以不用寫出E欄"01~75"值嗎
=>這跟你程式毫無相關,沒有一個地方會用到E欄
作者: tyrone123456    時間: 2015-4-21 14:59

我根據你的程式來推論你要的東西
另外我把Z1的結果顯示在G欄位

[attach]20749[/attach]
作者: 52ee24    時間: 2015-4-21 16:40

回復 7# tyrone123456


    P大 我解出來了,原來要把結果寫在敘述裡,太謝謝你了
我改成這樣就可以了↓
For i = 2 To QQ
ZZ = Range("E" & i)
    Select Case ZZ
         Case "01", "05", "21", "25", "26", "30", "46", "50", "51", "55", "71", "75"
              Z1 = "C"
              Range("F" & i) = Z1
         Case "02", "03", "04", "06", "10", "11", "15", "16", "20", "22", "23", "24" _
              , "27", "28", "29", "31", "35", "36", "40", "41", "45", "47", "48", "49" _
              , "52", "53", "54", "56", "60", "61", "65", "66", "70", "72", "73", "74"
              Z1 = "B"
              Range("F" & i) = Z1
         Case "07", "08", "09", "12", "13", "14", "17", "18", "19" _
              , "32", "33", "34", "37", "38", "39", "42", "43", "44" _
              , "57", "58", "59", "62", "63", "64", "67", "68", "69"
              Z1 = "A"
              Range("F" & i) = Z1
     End Select
Next i




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