[問題] !已解決! EXCEL VBA 怎麼判斷多個文字

看板Office作者 (Lorem)時間10年前 (2014/04/03 03:22), 10年前編輯推噓0(0011)
留言11則, 3人參與, 最新討論串1/1
軟體:EXCEL 版本:2013 各位大大好 小的最近剛學VBA 以下是我寫的VBA程式碼 Sub colorize() Dim a, b, c, d, e As String a = "鼠" b = "牛" c = "虎" d = "兔" e = "龍" ActiveSheet.Range("B2:D54").NumberFormatLocal = "@" For i = 2 To 54 If Cells(2, i) <> a Or b Or c Or d Or e Then Range("B2:D54").Cells(2, i).Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorAccent2 .TintAndShade = 0.399975585192419 .PatternTintAndShade = 0 End With 想請問各位大大 IF判斷那裡如果只有一個條件就可以順利運行 但如果像上面這樣寫就會有 Type mismatch (Error 13) 的問題 我自己猜測是or不能用在字串上面,請教各位大大有什麼方法解決 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.35.132.61 ※ 文章網址: http://www.ptt.cc/bbs/Office/M.1396466523.A.F10.html ※ 編輯: z44x85r (218.35.132.61), 04/03/2014 03:24:35

04/03 04:33, , 1F
cells() <> a or cells() <> b or cells()....
04/03 04:33, 1F

04/03 04:34, , 2F
附帶一提,dim a, b as string 只有 b 會被分配到 string
04/03 04:34, 2F

04/03 04:34, , 3F
a 會被宣告為變數
04/03 04:34, 3F

04/03 10:14, , 4F
,資料型態為Variant
04/03 10:14, 4F
謝謝white306大大 soyoso大 我之前將變數宣告為Variant也還是無法順利執行 ※ 編輯: z44x85r (218.35.132.61), 04/03/2014 11:54:06

04/03 11:59, , 5F
錯誤為if這行,"資料型態為variant"只是補充而已
04/03 11:59, 5F
我了解了soyoso大 另外我又碰到了問題 我將程式碼訂正完畢後 使用or判斷即便變數等於該儲存格的值 還是會跳到then的地方 但改用and就不會有這樣的問題 另外想問 使用cells(2,i)只能影響一列的儲存格 若要一次影響範圍中符合條件的所有儲存格應該要怎麼寫呢? ※ 編輯: z44x85r (218.35.132.61), 04/03/2014 12:14:46

04/03 12:17, , 6F
格式化條件試試
04/03 12:17, 6F
如果要用VB達成要怎麼寫呢? 還有為什麼or改成and才能正確判斷呢 我是想寫如果儲存格的值不等於變數A~E內的值,就直接改儲存格底色 但使用or儲存格內的值等於變數A~E內的值,他還是直接執行THEN 但用and就能成功運行,or不是任一條件符合就執行then嗎? 一次問了好多 希望各位別生氣 ※ 編輯: z44x85r (218.35.132.61), 04/03/2014 13:06:21

04/03 13:11, , 7F
有檔案可以提供嗎?
04/03 13:11, 7F
http://goo.gl/VqYRJX 麻煩您了 ※ 編輯: z44x85r (218.35.132.61), 04/03/2014 13:29:46

04/03 13:41, , 8F
「不是鼠」且「不是牛」→兩個都不是,條件才會成立
04/03 13:41, 8F

04/03 13:41, , 9F
「不是鼠」或「不是牛」→永遠成立
04/03 13:41, 9F
I4Lione 聽你這麼一說突然懂了 請問I4Lione大有沒有一次更改所有不等於條件的CELL的方法 ※ 編輯: z44x85r (218.35.132.61), 04/03/2014 13:54:31

04/03 13:58, , 10F
http://goo.gl/oKxI9U 試試用格式化條件
04/03 13:58, 10F

04/03 14:00, , 11F
就可以一次更改所有不等於條件
04/03 14:00, 11F
謝謝soyoso大 雖然有點看不懂但我會去爬文的 原來有這麼簡潔的寫法 真的是太有趣啦 XD ※ 編輯: z44x85r (218.35.132.61), 04/03/2014 14:04:51
文章代碼(AID): #1JF6DRyG (Office)