VBA函數(shù)批量將將字符由全角轉(zhuǎn)為半角,或由半角轉(zhuǎn)為全角-同時(shí)適用Excel Access
- 2017-09-08 10:49:00
- zstmtony 原創(chuàng)
- 21267
VBA函數(shù)批量將將字符由全角轉(zhuǎn)為半角,或由半角轉(zhuǎn)為全角,及如何判斷一串字符里面含有全角的英文數(shù)字符號(hào)
Excel微信群中有網(wǎng)友有不少表格是全角,希望使用VBA批量轉(zhuǎn)換為半角。
嘗試用Access寫(xiě)了一個(gè),在Excel VBA里也通用。
'VBA將字符由全角轉(zhuǎn)為半角 '調(diào)用方法 gf_WideToNarrow("Excel交流網(wǎng)2016") Public Function gf_WideToNarrow(strSrc As String) As String Dim strResult As String '通過(guò)StrConv及 vbNarrow參數(shù)轉(zhuǎn)換 strResult = StrConv(strSrc, vbNarrow) gf_WideToNarrow = strResult End Function
'VBA將字符由半角轉(zhuǎn)為全角 Public Function gf_NarrowToWide(strSrc As String) As String Dim strResult As String '通過(guò)StrConv及 vbWide參數(shù)轉(zhuǎn)換 strResult = StrConv(strSrc, vbWide) gf_NarrowToWide = strResult End Function
另判斷 字符串中是否含有全角符號(hào)的函數(shù)
'判斷字符串有否包含全角 '調(diào)用方法:gf_IncludeWideChar("Excel交流網(wǎng)2016") Public Function gf_IncludeWideChar(strSrc As String) As Boolean gf_IncludeWideChar = (strSrc = StrConv(strSrc, vbNarrow)) End Function '單個(gè)字符判斷,也可使用 AscB(Mid(字符串, i, 1)) = Asc(Mid(字符串, i, 1))
網(wǎng)絡(luò)上Rubi的專欄 還有另一種VBA 全角轉(zhuǎn)半角的方法 是使用逐個(gè)對(duì)應(yīng)的方法,不夠靈活,但可以按自己的方式來(lái)定義
Option Explicit Sub BatchReplace() Dim oDict, strKey Set oDict = CreateObject("Scripting.Dictionary") '全角數(shù)字轉(zhuǎn)換為半角 oDict.Add "1", "1" oDict.Add "2", "2" oDict.Add "3", "3" oDict.Add "4", "4" oDict.Add "5", "5" oDict.Add "6", "6" oDict.Add "7", "7" oDict.Add "8", "8" oDict.Add "9", "9" oDict.Add "0", "0" '小寫(xiě)全角轉(zhuǎn)換 oDict.Add "a", "a" oDict.Add "b", "b" oDict.Add "c", "c" oDict.Add "d", "d" oDict.Add "e", "e" oDict.Add "f", "f" oDict.Add "g", "g" oDict.Add "h", "h" oDict.Add "i", "i" oDict.Add "j", "j" oDict.Add "k", "k" oDict.Add "l", "l" oDict.Add "m", "m" oDict.Add "n", "n" oDict.Add "o", "o" oDict.Add "p", "p" oDict.Add "q", "q" oDict.Add "r", "r" oDict.Add "s", "s" oDict.Add "t", "t" oDict.Add "u", "u" oDict.Add "v", "v" oDict.Add "w", "w" oDict.Add "x", "x" oDict.Add "y", "y" oDict.Add "z", "z" '大寫(xiě)全角轉(zhuǎn)換 oDict.Add "A", "A" oDict.Add "B", "B" oDict.Add "C", "C" oDict.Add "D", "D" oDict.Add "E", "E" oDict.Add "F", "F" oDict.Add "G", "G" oDict.Add "H", "H" oDict.Add "I", "I" oDict.Add "J", "J" oDict.Add "K", "K" oDict.Add "L", "L" oDict.Add "M", "M" oDict.Add "N", "N" oDict.Add "O", "O" oDict.Add "P", "P" oDict.Add "Q", "Q" oDict.Add "R", "R" oDict.Add "S", "S" oDict.Add "T", "T" oDict.Add "U", "U" oDict.Add "V", "V" oDict.Add "W", "W" oDict.Add "X", "X" oDict.Add "Y", "Y" oDict.Add "Z", "Z" '標(biāo)點(diǎn)符號(hào) oDict.Add ",", "," oDict.Add ":", ":" oDict.Add ";", ";" oDict.Add "(", "(" oDict.Add ")", ")" oDict.Add "[", "[" oDict.Add "]", "]" oDict.Add ".", "." oDict.Add "+", "+" oDict.Add "%", "%" oDict.Add "/", "/" ' ...... ' 在這里可以根據(jù)需要增加更多的替換規(guī)則 ' ...... For Each strKey In oDict.Keys Selection.Find.Execute FindText:=strKey, ReplaceWith:=oDict(strKey), Replace:=wdReplaceAll Selection.StartOf wdStory Next MsgBox "完成!" End Sub
另Excel還可試下 =widechar(a1)
Unicode編碼判斷,全角標(biāo)點(diǎn)/數(shù)字及英文字母范圍:FE30--FFE5
全角與半角的區(qū)別及相關(guān)知識(shí)
全角指一個(gè)字符占用兩個(gè)標(biāo)準(zhǔn)字符位置的狀態(tài)。漢字字符和規(guī)定了全角的英文字符及國(guó)標(biāo)GB2312-80中的圖形符號(hào)和特殊字符都是全角字符。
一般的系統(tǒng)命令是不用全角字符的,只是在作文字處理時(shí)才會(huì)使用全角字符。
全角是一種電腦字符,且每個(gè)全角字符占用兩個(gè)標(biāo)準(zhǔn)字符(或半角字符)位置。
每個(gè)普通字符(或半角字符)只占用一字節(jié)的空間(一字節(jié)有8位,共256個(gè)編碼空間),而漢語(yǔ)、日語(yǔ)、及朝鮮文等文字語(yǔ)言的字庫(kù)量遠(yuǎn)大于256個(gè),所以改用兩個(gè)字節(jié)來(lái)儲(chǔ)存。同時(shí),也是因?yàn)橹腥枕n等文字的書(shū)寫(xiě)習(xí)慣,如果統(tǒng)一使用全角字符的話,排列起來(lái)也顯得整齊。
為了排列整齊,英文和其它拉丁文的字符和標(biāo)點(diǎn)也提供了全角格式。
通常的英文字母、數(shù)字鍵、符號(hào)鍵都是半角的,半角的顯示內(nèi)碼都是一個(gè)字節(jié)。在系統(tǒng)內(nèi)部,以上三種字符是作為基本代碼處理的,所以用戶輸入命令和參數(shù)時(shí)一般都使用半角。
全角與半角有什么區(qū)別?各在什么情況下使用?
全角占兩個(gè)字節(jié),半角占一個(gè)字節(jié)。
半角全角主要是針對(duì)標(biāo)點(diǎn)符號(hào)來(lái)說(shuō)的,全角標(biāo)點(diǎn)占兩個(gè)字節(jié),半角占一個(gè)字節(jié),而不管是半角還是全角,漢字都還是要占兩個(gè)字節(jié)。
在不支持漢字等語(yǔ)言的計(jì)算機(jī)上只能使用半角標(biāo)點(diǎn)(其實(shí)這種情況根本就不存在半角全角的概念) 。
,.?\'! ……這些是半角的
,。?‘! ……這些是全角的
對(duì)于大多數(shù)字體來(lái)說(shuō),全角看起來(lái)比半角大,當(dāng)然這不是本質(zhì)區(qū)別。
在中文輸入法中,切換全角和半角格式的快捷鍵為SHIFT+空格。
全角和半角區(qū)別
全角就是字母和數(shù)字等與漢字占等寬位置的字。
半角就是ASCII方式的字符,在沒(méi)有漢字輸入法起作用的時(shí)候輸入的字母數(shù)字和字符都是半角的。
示例如下:(鍵盤(pán)的輸入是一樣的,輸入法的設(shè)置不同)
在漢字輸入法出現(xiàn)的時(shí)候,輸入的字母數(shù)字默認(rèn)為半角,但是標(biāo)點(diǎn)則是默認(rèn)為全角(如下圖)可以通過(guò)鼠標(biāo)點(diǎn)擊輸入法工具條上的相應(yīng)按鈕來(lái)改變,輸入法名字左邊的按鈕是改變中文和英文輸入的,右邊的圓和半圓是改變字母和數(shù)字的全角半角的,再右邊的“.,”或者"。,"是用來(lái)改變標(biāo)點(diǎn)符號(hào)的中英文設(shè)置(中文標(biāo)點(diǎn)即是全角,英文標(biāo)點(diǎn)即是半角),最右邊的鍵盤(pán)圖標(biāo)是顯示軟鍵盤(pán)用的,可以輸入一些特殊字符或者其它語(yǔ)言里面的字母。
- office課程播放地址及課程明細(xì)
- Excel Word PPT Access VBA等Office技巧學(xué)習(xí)平臺(tái)
- 將( .accdb) 文件格式數(shù)據(jù)庫(kù)轉(zhuǎn)換為早期版本(.mdb)的文件格式
- 將早期的數(shù)據(jù)庫(kù)文件格式(.mdb)轉(zhuǎn)換為 (.accdb) 文件格式
- KB5002984:配置 Jet Red Database Engine 數(shù)據(jù)庫(kù)引擎和訪問(wèn)連接引擎以阻止對(duì)遠(yuǎn)程數(shù)據(jù)庫(kù)的訪問(wèn)(remote table)
- Access 365 /Access 2019 數(shù)據(jù)庫(kù)中哪些函數(shù)功能和屬性被沙箱模式阻止(如未啟動(dòng)宏時(shí))
- Access Runtime(運(yùn)行時(shí))最全的下載(2007 2010 2013 2016 2019 Access 365)
- access vba代碼太長(zhǎng),換行,分行的寫(xiě)法
- VB6 VBA Access真正可用并且完美支持中英文的 URLEncode 與 URLDecode 函數(shù)源碼
- 自定義VB中的urlencode函數(shù),將URL中特殊部分進(jìn)行編碼
- Access 函數(shù)簡(jiǎn)化串接sql字符串,減少符號(hào)導(dǎo)致的書(shū)寫(xiě)錯(cuò)誤
- vba完全關(guān)閉IE瀏覽器及調(diào)用IE瀏覽器的簡(jiǎn)單應(yīng)用
- 利用FollowHyperlink方法打開(kāi)超鏈接提示“無(wú)法下載您要求的信息”的解決方案
- 在access中用代碼打開(kāi)文本框中超鏈接地址
- Activex控件或Dll 在某些電腦無(wú)法正常注冊(cè)的解決辦法(regsvr32注冊(cè)時(shí)卡住)
- office使用部分控件時(shí)提示“您沒(méi)有使用該ActiveX控件許可的問(wèn)題”的解決方法
- RTF文件(富文本格式)的一些解析
- Access樹(shù)控件(treeview) 64位Office下出現(xiàn)橫向滾動(dòng)條不會(huì)自動(dòng)定位的解決辦法
- Access中國(guó)樹(shù)控件 在win10電腦 節(jié)點(diǎn)行間距太小的解決辦法
- EXCEL 2019 64位版(Office 2019 64位)早就支持64位Treeview 樹(shù)控件 ListView列表等64位MSCOMMCTL.OCX控件下載
- VBA或VB6調(diào)用WebService(直接Post方式)并解析返回的XML
- 早期PB程序連接Sqlserver出現(xiàn)錯(cuò)誤
- MMC 不能打開(kāi)文件C:/Program Files/Microsoft SQL Server/80/Tools/Binn/SQL Server Enterprise Manager.MSC 可能是由于文件不存在,不是一個(gè)MMC控制臺(tái),或者用后來(lái)的MMC版
- sql server連接不了的解決辦法
- localhost與127.0.0.1區(qū)別
- Roych的淺談數(shù)據(jù)庫(kù)開(kāi)發(fā)系列(Sql Server)
- sqlserver 自動(dòng)備份對(duì)備份目錄沒(méi)有存取權(quán)限的解決辦法
- 安裝Sql server 2005 express 和SQLServer2005 Express版企業(yè)管理器 SQLServer2005_SSMSEE
- 金蝶KIS旗艦版 登錄時(shí)“類型不匹配”
- access行業(yè)交流QQ群-部分行業(yè)交流群(倉(cāng)庫(kù) 人事 工資 考勤 CRM HRM MRP ERP 等)
- access垃圾分類數(shù)據(jù)庫(kù)
- Office提高企業(yè)辦公管理效率
- Access交流網(wǎng)Acccess通用開(kāi)發(fā)平臺(tái)樹(shù)導(dǎo)航出錯(cuò)的解決辦法
- Access交流網(wǎng)Access通用開(kāi)發(fā)平臺(tái)的使用幫助教程及FAQ
- Access采購(gòu)倉(cāng)庫(kù)系統(tǒng)作品源代碼
聯(lián)系人: | 王先生 |
---|---|
Email: | 18449932@qq.com |
QQ: | 18449932 |
微博: | officecn01 |