- 帖子
- 83
- 主題
- 17
- 精華
- 0
- 積分
- 105
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- XP
- 閱讀權限
- 20
- 註冊時間
- 2010-12-28
- 最後登錄
- 2018-8-8
|
7#
發表於 2012-8-27 17:29
| 只看該作者
回復 小俠客
GBKEE 發表於 2012-8-24 12:05 
我也用過REPLACE,但當處理多於一個SPACE或特別符號時就會出問題,原來可以用STRING + LOOP的方法
受教了。
另外,我可以多問一個問題嗎?是關於分析字串時多條件選擇的問題
例如:我要受訪者回答他子女的學校區分和學歷,如果沒有子女,答案留空,轉答下一題- If Ien(raw.Cells(i, 3)) > 0 Then
- If InStr(raw.Cells(i, 3), "小學") + InStr(raw.Cells(i, 3), "初小") > 0 Then
- type = "primary"
- GoTo Define_unit
- ElseIf InStr(raw.Cells(i, 3), "初中") + InStr(raw.Cells(i, 3), "國中")+ InStr(raw.Cells(i, 3), "高中") > 0 Then
- type = "secondary"
- GoTo Define_unit
- ElseIf InStr(raw.Cells(i, 3), "大學") + InStr(raw.Cells(i, 3), "大專")> 0 Then
- type = "Uni"
- GoTo Define_unit
-
- ElseIf InStr(raw.Cells(i, 3), "研究所") + InStr(raw.Cells(i, 3), "博士") > 0 Then
- type = "Master+"
- GoTo Define_unit
-
- End If
-
- Define_unit:
- If InStr(raw.Cells(i, 3), "台灣") > 0 Then unit = "TW"
- If InStr(raw.Cells(i, 3), "香港") > 0 Then unit = "HK"
- If InStr(raw.Cells(i, 3), "美國") > 0 Then unit = "US"
- End If
複製代碼 例如:答案是,我兒子是在美國讀高中
那麼unit = "US", TYPE=secondary
但這裡有很多IF THEN,又太長,有點混亂。我將之改用GOTO,不用重複出現幾次相似的句子。但請問可以改用select case或其他方法簡化嗎?謝謝 |
|