標題:
請教:VBA 如何判斷中英文?
[打印本頁]
作者:
storylai
時間:
2014-1-8 18:23
標題:
請教:VBA 如何判斷中英文?
本帖最後由 storylai 於 2014-1-8 18:25 編輯
我的情況:
1- 新接手的工作是整理來自不同系統不同來源的報表,
各報表的「姓名」部份有中有英,
但中文名字往往出現「張+空格+三豐」,
如「張 三豐」出現了,要手動改!
若看漏了進了 database 則更麻煩。
2- 問題是,我的報表中英文名都在同一欄中,
英文名必須保留空格,
中文名有半形一個、兩個或全形一個空格。
情況如下例:
Taylor Swift
張 惠妹
Nicki Minaj
蔡依林
蘇 芮
Flo Rida
曹 格
周 杰倫
3- 這種情況還出現在其它如數字,如 12,345,洋系統就偏要出 12 345
而中英文地址的空格則屬於輸入錯誤!
現時每天的新資料,我是用手動排序手動修改,
但過往的資料太多了,
因此,想請教大家,能否用 VBA 判斷中英文,然後再刪除空格。
謝謝大家。
作者:
ML089
時間:
2014-1-8 22:14
如果用公式
=IF(LEFT(A1)<="z",A1,SUBSTITUTE(SUBSTITUTE(A1," ",)," ",))
下拉
作者:
GBKEE
時間:
2014-1-9 08:59
回復
1#
storylai
附檔說明看看
作者:
storylai
時間:
2014-1-10 15:24
回復 storylai
附檔說明看看
GBKEE 發表於 2014-1-9 08:59
昨晚至今仍上傳不了。
昨晚做了小小程式,給大家一笑。
它基本能達到我的要求,下一步想用 Trim 先刪去名字的兩邊空格,
接著是刪字串中的「半形及全形空格」了。
由於工作內容涉及隱私,故自己弄了個相類的附件。
內容: (空行、中文、英文、數字、其它 等欄是判別後做記錄,方便核對)
A B C D E F
客名 空行 中文 英文 數字 其它
W *
x *
Y *
z *
丁守中 *
田秋堇 *
呂玉玲 *
李鴻鈞 *
林國正 *
洪秀柱 *
陳怡潔 *
陳節如 *
張嘉郡 *
費鴻泰 *
楊瓊瓔 *
蔡煌瑯 *
*
Sub TestChinese()
LastRows = Range("A65536").End(xlUp).Row
For i = 2 To LastRows
aString = Cells(i, 1)
If aString = "" Then
Cells(i, 2) = "*"
Else
aChar = Left(aString, 1)
If Asc(aChar) < 0 Then
Cells(i, 3) = "*"
ElseIf aChar Like "[A-Za-z]" Then
Cells(i, 4) = "*"
ElseIf aChar = 48 Or aChar <= 57 Then
Cells(i, 5) = "*"
Else
Cells(i, 6) = "*"
End If
End If
Next i
End Sub
複製代碼
作者:
Hsieh
時間:
2014-1-10 16:33
回復
1#
storylai
Sub ex()
Dim A As Range
With 工作表1
For Each A In .Range(.[A1], .[A1].End(xlDown))
n = Asc(A)
If Asc(A) > 255 Or Asc(A) < 1 Then A = Replace(A, " ", ""): A = Replace(A, " ", "")
Next
End With
End Sub
複製代碼
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)