- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2024-11-14
|
本帖最後由 luhpro 於 2013-7-30 00:55 編輯
了解,那麼Case aa Like "*成交*"可以有2個條件以上嗎?
Case aa Like "*成交*" or "*未成交*",像這樣嗎
eric093 發表於 2013-7-29 23:40 
你應該要用 Case aa Like "*成交*" Or aa Like "*未成交*" (在 Or 的左右邊都應該要放完整的條件式)
其實 aa Like "*成交*" 就已經有包含 aa Like "*未成交*" 了. (因為 "未成交" 此值對於 Like "*成交*" 是 True)
Select Case 較常用於 "同一變數(或標的)" 於不同值下需有不同的處理方式(即非單純藉由公式或程式就能實現其目的)時使用,(有依某標的的條件或值來做 "分流" 的意味)
而 If 則較常用於具有排它性條件的需求下使用.(有層層篩選的意味)
Select Case 指出要比對的標的, 而 Case 則指出該標的應判斷的條件(可用類似 Case Is > 5 之類的條件式)或值 ,也因皆為相同標的,故Case不需指明標的.
除非你用 Select Case True, 那麼所有 Case 的條件標的都應該是相同的,
否則即便非該摽的的第1個條件式成立, 也不會執行其下的程序,而是會繼續跑去判斷下一個Case是否成立(一旦不成立立刻結束),總之容易發生非預期結果.
其形式為 :
With Target ' 標的儲存格
Select Case .Row ' 儲存格列號
Case 1 ' 若該儲存格位於第 1 列
...
Case 9 ' 若該儲存格位於第 3 列, 此處第 2 ~ 8 列不處理, 故不適用 For ...Next
...
Case 13 ' 第 13 列
...
Case Else ' 若列號非上述情形時於此處理
...
End Select
Edn With
若上式改用 If 來表示,則為
With Target ' 標的儲存格
If .Row=1 Then ' 若該儲存格位於第 1 列
...
ElseIf .Row= 9 Then ' 若該儲存格位於第 9 列, (若儲存格位於第 2 ~ 8 列則不會處理, 故不適用 For ...Next, 或公式)
...
Elseif .Row=13 Then ' 若該儲存格位於第 13 列
...
Else ' 若列號非上述情形時於此處理
...
End If
Edn With |
|