昱得資訊工作室
麻辣學園
歡迎光臨, 訪客. 請先 登入註冊一個帳號.
您忘了 啟用您的帳號嗎?
2008-09-08, 19:32:11
首頁 說明 登入 註冊 贊助論壇 想當作者?
新聞: Wink有贊助本論壇經營的會員,請務必來信通知小誌,這樣才能為您更新會員群組喔!!


+  麻辣家族討論區
|-+  MS Office 系列
| |-+  EXCEL
| | |-+  Excel程式區 (版主: hsieh)
| | | |-+  Len / LenB - 字串長度判斷方式的探討
0 會員 以及 1 訪客 正在閱讀本篇主題. « 上一篇主題 下一篇主題 »
頁: [1] 向下 列印
作者 主題: Len / LenB - 字串長度判斷方式的探討  (閱讀 855 次)
leonchou
論壇維護群
*
離線 離線

文章: 1160


Len / LenB - 字串長度判斷方式的探討
« 於: 2005-10-16, 19:27:57 »

一般認知上,LenB是傳回位元組的長度,
如此對於雙位元文字如中文、全形字等,
我們可取得字元(Byte)數而不是字數。例如:
mystr = "測試"
Len(mystr) --> 2
LenB(mystr) --> 4

VBA函數 LenB 與工作表函數 LENB 的差異
上述例子改使用工作表的 LENB 亦可得到相同的結果。
再看以下例子:
工作表LEN("ABC")--> 3
工作表LENB("ABC")--> 3
VBALen("ABC")--> 3
VBALenB("ABC")--> 6
你可能覺得奇怪,"ABC"不是半形字嗎,
為何VBA LenB 卻傳回 6 呢?
為何VBA LenB 和工作表 LENB 傳回不同結果?

先看以下再說:
LenB(StrConv("ABC",vbFromUnicode)) --> 3

透過 StrConv 轉換,LenB 即傳回我們預期的結果。
VBA輔助說明沒有明確的解釋 LenB 的處理原則,
但由此可推測 VBA LenB 是將字串以 Unicode 編碼方式處理,
而一個Unicode字元是佔兩個位元組。

註1:請參閱VBA的 StrConv 函數說明。
註2:測試環境如左,其他版本若有不同,請提出供大家參考~
已記錄

頁: [1] 向上 列印 
« 上一篇主題 下一篇主題 »
跳到:  


本頁花了 0.26 秒, 以及 20 次的資料庫查詢.