暱稱: 温奇 頭銜: 議論者
中學生
- 帖子
- 104
- 主題
- 5
- 精華
- 0
- 積分
- 110
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- Office2007
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2017-11-14
- 最後登錄
- 2019-4-30
 
|
8#
發表於 2018-9-9 21:14
| 只看該作者
回復 6# hkyan
可以搜尋Asc函數字元碼對照表看看,
下面是修改-這個符號,字元碼為45,在Function中的Select Case中加入一個條件即可。
註解我再打詳細一點。- Private Sub CommandButton1_Click()
- For Each aa In Sheets("工作表1").Range([A1], [A1].End(xlDown))'迴圈讀取A欄所有資料,往下讀取
- For i = 1 To Len(aa)'迴圈該欄位文字中長度
- If Mid(aa, i, 1) = "," And Mid(aa, i + 1, 1) <> " " Then'如果讀到逗號並確認後方是否不為空白,兩者條件均符合執行逗號後面加入空白,如果條件均不成立當前文字加入ar字串中
- ar = ar & ", "
- Else
- ar = ar & Mid(aa, i, 1)
- End If
- Next
- aa.Offset(, 1) = StrType(ar)'判讀字串完畢後ar中的條件,跳入Function程序,結果回傳aa往右加一格位置
- ar = ""'清空字串
- Next
- End Sub
- Function StrType(Mystr)
- For i = 1 To Len(Mystr)'迴圈該欄位文字中長度
- k = AscW(Mid(Mystr, i))'取得的該文字Asc函數轉換字元碼
- Select Case k'選取字元碼符合Case中哪一個條件
- Case 32 '空格
- Textstring = Textstring & Mid(Mystr, i, 1)
- Case 48 To 57 '數字
- Textstring = Textstring & Mid(Mystr, i, 1)
- Case 65 To 90, 97 To 122 '英文
- Textstring = Textstring & Mid(Mystr, i, 1)
- Case 0 To 44, 46 To 47, 58 To 64, 91 To 96, 122 To 255 '符號
- Textstring = Textstring & ""
- Case 45 '像是這裡 - 這個符號的字元碼為45,在字串中把它改為空格就可以
- Textstring = Textstring & " "
- End Select
- Next
- StrType = "MR " & Textstring'字串完畢後在字串前加入MR+空格,回傳完整字串
- If Mid(StrType, 4, 1) = " " Then StrType = Mid(StrType, 1, 3) & Mid(StrType, 5, 99)'如果文字中第四碼這一個字為空白,重新字串1~3及5~最後一碼,等同於刪除第四碼空格
- End Function
複製代碼 這支程序有點偷懶,不好意思...還有很多地方可以精簡的地方... |
|