|
在 Excel 2007 編寫串口通訊程序,使用 MSCOMM 控件,在讀取數(shù)據(jù)時(shí),返回的字符串為 ANSI 字符串。 要在 Excel 2007 的環(huán)境中正常顯示,就會(huì)出現(xiàn)無法識(shí)別的字符格式。把這種字符串經(jīng)過 StrConv(S, vbUnicode)轉(zhuǎn)換后,就能正常顯示。
但是把這個(gè)程序?qū)氲?Excel 2003 之后,發(fā)現(xiàn)讀數(shù)都是錯(cuò)的。再檢查其原因,發(fā)現(xiàn)通過 MSCOMM.input 返回的字符串,已經(jīng)不需要轉(zhuǎn)換為 Unicode 格式。這些數(shù)據(jù)能直接在 Excel 應(yīng)用中顯示,轉(zhuǎn)換了就會(huì)出錯(cuò)。因此只好增加一個(gè)對(duì) Excel 的版本判斷的語句。 if Application.Version >=12.0 then ... 。Excel 2003 的版本號(hào)為 11. Excel 2007 的版本號(hào)為12。這樣系統(tǒng)才能正常工作。
這個(gè)問題的內(nèi)在原因尚不清楚。
|
|