- 帖子
- 2848
- 主題
- 10
- 精華
- 0
- 積分
- 2903
- 點名
- 0
- 作業系統
- 〔略〕
- 軟體版本
- 〔略〕
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 〔略〕
- 註冊時間
- 2013-5-13
- 最後登錄
- 2026-7-25
|
回復 23# sunnyso
∼∼LeftB( , 1) 在VBA好像不能用___〔LeftB〕在工作表函數與VBA函數作用不同,只能使用〔Evaluate〕來帶!
A1文字:氹仔 堃 澳A1??2135H?V
1.以MID跑迴圈取字,再逐一比對:
Sub 全型字元數1()
Dim j%, Jm%, T$
For j = 1 To Len([A1])
T = Mid([A1], j, 1)
If T <> Evaluate("LeftB(""" & T & """,1)") Then Jm = Jm + 1
Next j
MsgBox "全型字共有:" & Jm & " 個"
End Sub
2.不用迴圈:
Sub 全型字元數2()
Dim X1%, X2%
X1 = Len([A1])
X2 = Evaluate("Len(LeftB(""" & [A1] & String(X1, "1") & """," & X1 * 2 & "))")
MsgBox "全型字共有:" & X1 * 2 - X2 & " 個"
End Sub
公式演示:
B1:=LEN(A1)*2-LEN(LEFTB(A1&REPT(1,LEN(A1)),LEN(A1)*2))
其他參考:文字若超過99字,請自行調整
=LEN(A1)*2-LEN(LEFTB(A1&REPT(1,99),LEN(A1)*2))
=FREQUENCY(LEN(LEFTB(MID(A1,ROW(1:99),1)&"TT",2)),{1,0})
=SUMPRODUCT(N(LEN(LEFTB(MID(A1,ROW(1:99),1)&"TT",2))=1))
若不考慮〔特殊字〕應會單純些,以上粗略程式碼及公式供參考,看版主們是否再提供較正規的精闢解法! |
|