久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    純干貨,收藏!VBA字符串處理、文本處理函數(shù)與方法一鍋燴!

     冷茶視界 2024-08-13 發(fā)布于江蘇

    點(diǎn)【關(guān)于本公眾號(hào)】了解一下,歡迎關(guān)注謝謝!

    快速瀏覽

    實(shí)用案例

    |日期控件||簡(jiǎn)單的收發(fā)存||收費(fèi)管理系(Access改進(jìn)版)|

    |電子發(fā)票管理助手||電子發(fā)票登記系統(tǒng)(Access版)|

    |文件合并||表格拆分||審計(jì)憑證抽查底稿|

    |中醫(yī)診所收費(fèi)系統(tǒng)(Excel版)||中醫(yī)診所收費(fèi)系統(tǒng)(Access版)||銀行對(duì)賬單自動(dòng)勾對(duì)|

    |印章使用登記系統(tǒng)|

    收費(fèi)使用項(xiàng)目

    |財(cái)務(wù)管理系統(tǒng)||工資薪金和年終獎(jiǎng)個(gè)稅籌劃||新稅法下工資表模版|

    內(nèi)容提要

    • 字符串、文本處理函數(shù)與方法
    • InStr/InStrRev/LCase/UCase/Left

    • Right/Mid/Trim/Len/Replace

    • Space/StrComp/String/StrReverse

    • & 運(yùn)算符/Split/Format/Asc/Chr

    • Join/Filter/Val/Str/CStr

    • StrConv/正則表達(dá)式

    大家好,我是冷水泡茶。
    在VBA中(當(dāng)然不僅是VBA,包括所有編程語言),處理文本、字符串是一項(xiàng)非常重要的內(nèi)容,VBA也內(nèi)置很多字符處理函數(shù),我們一起來學(xué)習(xí)一下:
    1、InStr函數(shù):返回子字符串在字符串中第一次出現(xiàn)的位置,搜索方向從左到右。
    語法:
    InStr([start],string1,string2,[compare])。'// start(可選):搜索開始的位置'// string1:要搜索的字符串'// string2:要查找的子字符串'// compare(可選):指定比較的類型。0表示二進(jìn)制比較,1表示文本比較
    示例:
    Dim position As Integerposition = InStr(1, "Hello World""World")  '返回7
    典型應(yīng)用:
    (1)判斷一個(gè)字符串中是否包含另一個(gè)字符串
    (2)在需要提取特定字符串的時(shí)候,取得開始或結(jié)束位置

    2、InStrRev函數(shù):返回子字符串在字符串中最后一次出現(xiàn)的位置,搜索方向從右到左。

    語法:

    InStrRev(string1, string2, [start], [compare])'// string1:要搜索的字符串'// string2:要查找的子字符串'// start(可選): 搜索開始的位置,從右向左計(jì)數(shù)'// compare(可選): 比較方式,同InStr
    示例:
    Dim position As Integerposition = InStrRev("Hello World""o")  '返回8
    典型應(yīng)用:
    (1)通過最后一個(gè)“.”的位置,獲取文件擴(kuò)展名
    (2)處理最后一個(gè)特定字符,刪除、替換等

    3、LCase函數(shù):將字符串中的所有字符轉(zhuǎn)為小寫,LCase(string)。

    4、UCase函數(shù):將字符串中的所有字符轉(zhuǎn)為大寫,UCase(string)。

    5、Left函數(shù):從字符串左側(cè)開始,返回指定數(shù)量的字符,Left(string, length)

    6、Right函數(shù):從字符串右側(cè)開始,返回指定數(shù)量的字符,Right(string, length)。
    7、Mid函數(shù):從字符串的指定位置開始,返回特定數(shù)量的字符,Mid(string, start, [length])。start表示開始位置,通常會(huì)結(jié)合InStr、InStrRev函數(shù)使用。
    8、Trim函數(shù):刪除字符串兩側(cè)的空格,還有Ltrim、Rtrim分別刪除字符串左、右空格。
    9、Len函數(shù):返回字符串的長(zhǎng)度。我們經(jīng)常用它跟Left函數(shù)一起,把一個(gè)字符串去掉末尾一個(gè)字符,在用分隔符循環(huán)連接字符串時(shí),結(jié)尾會(huì)多一個(gè)分隔符:
    listStr = Left(listStr, Len(listStr) - 1)
    10、Replace函數(shù):用另一個(gè)字符串替換字符串中的子字符串
    語法:
    Replace(expression, find, replace, [start], [count], [compare])'// expression: 要處理的字符串'// find: 要查找的子字符串'// replace: 用于替換的字符串'// start(可選): 搜索開始的位置'// count(可選): 要替換的次數(shù)'// compare(可選): 比較方式
    示例
    Dim result As Stringresult = Replace("Hello World""World""VBA")  '返回"Hello VBA"
    典型應(yīng)用:
    (1)統(tǒng)一全角、半角、中英文中的某種字符,比如把半角的冒號(hào)“:”替換成全角的冒號(hào)“:”
    (2)去掉不需要的字符,把它替換為空""
    11、Space函數(shù):返回指定數(shù)量的空格Space(Number),跟我們用引號(hào)括起來的空格"      "一樣,用這個(gè)函數(shù)看起來要好一些,如果需要一個(gè)很長(zhǎng)的空格,我們直接輸入空格就有點(diǎn)不太方便了。
    12、StrComp函數(shù):比較兩個(gè)字符串,并返回表示比較結(jié)果的整數(shù)
    語法
    StrComp(string1, string2, [compare])'// string1: 第一個(gè)要比較的字符串'// string2: 第二個(gè)要比較的字符串'// compare(可選): 比較方式'// 返回值:'// 返回0:兩個(gè)字符串相等'// 返回-1string1小于string2'// 返回1:string1大于string2
    13、String函數(shù):返回由指定字符重復(fù)指定次數(shù)的字符串
    語法
    String(number, character)'// number: 字符重復(fù)的次數(shù)。'// character: 要重復(fù)的字符。
    14、StrReverse函數(shù):將字符串中的字符順序反轉(zhuǎn)
    15、& 運(yùn)算符:用于將兩個(gè)或多個(gè)字符串連接在一起(字符串拼接),通常我們會(huì)加上一個(gè)分隔符,這樣連成一字符串看上去很清晰,而且還可以利用Split函數(shù)分列到一個(gè)字符串?dāng)?shù)組,還原原來的單個(gè)字符串;如果需要分列,那么這個(gè)分隔符要選擇好,不能與原字符串中的單個(gè)字符相同。
    16、Split函數(shù):將一個(gè)字符串按照指定的分隔符分割成一個(gè)字符串?dāng)?shù)組,這里要注意被賦值的字符串?dāng)?shù)組的定義方式,要么定義為變體類型、要么定義為字符型數(shù)組,否則會(huì)報(bào)錯(cuò)“類型不匹配”:
    Dim arrStrDim tempStr() As StringarrStr = Split("Hello World", " ")tempStr = Split("Hello World", " ")
    語法:
    resultArray = Split(expression, [delimiter], [limit], [compare])'// expression: 要分割的字符串'// delimiter (可選): 用作分隔符的字符?默認(rèn)是空格'// limit(可選): 返回?cái)?shù)組的最大元素?cái)?shù)。如果指定,則超出部分不分割。'// compare(可選): 指定比較方式。可以是 vbBinaryCompare 或 vbTextCompare
    17、Format函數(shù):有點(diǎn)類似工作表函數(shù)Text,按照指定的格式表達(dá)式格式化字符串、數(shù)字或日期
    語法
    Format(Expression[ Format ][ FirstDayOfWeek ][ FirstWeekOfYear ])
    典型應(yīng)用:
    (1)把當(dāng)前時(shí)間格式化成一個(gè)字符串,可以作為文件名或者流水號(hào),避免重復(fù):
    x = format(Now, "yyyymmddhhmmss")
    (2)把數(shù)字格式化為指定格式,把沒有分隔符的日期格式化為日期格式:
    a = format(20240102"0000-00-00")
    這個(gè)函數(shù)的參數(shù)格式非常多,想進(jìn)一步了解的,可以參考官方文檔:

    https://learn.microsoft.com/zh-cn/office/vba/language/reference/user-interface-help/format-function-visual-basic-for-applications

    18、Asc函數(shù):返回字符串中第一個(gè)字符的ASCII碼值A(chǔ)sc(string)。
    19、Chr函數(shù):返回與指定的ASCII碼對(duì)應(yīng)的字符,我是經(jīng)常用Chr(10),返回一個(gè)回車符。
    20、Join函數(shù):使用指定的分隔符,將一個(gè)字符串?dāng)?shù)組連接成一個(gè)字符串。
    21、Filter函數(shù):返回包含指定子字符串的數(shù)組元素:
    語法
    Filter(sourcearray, match, [include], [compare])'// sourcearray: 要搜索的字符串?dāng)?shù)組'// match: 要查找的字符串'// include(可選): 布爾值,決定是否返回匹配項(xiàng)(True)還是不匹配項(xiàng)(False'// compare (可選): 比較方式
    這個(gè)函數(shù)沒怎么用過,相當(dāng)于篩選,可以用于模糊搜索,不用循環(huán)匹配了,這個(gè)有機(jī)會(huì)要用用,感覺不錯(cuò)!
    22、Val函數(shù):從字符串中提取數(shù)值部分,返回一個(gè)數(shù)字,常常用來把非數(shù)字文本轉(zhuǎn)換為0,從而避免輸入錯(cuò)誤造成程序報(bào)錯(cuò)。
    23、Str函數(shù):把數(shù)值轉(zhuǎn)換成字符串,正數(shù)前會(huì)添加一個(gè)空格。
    24、CStr函數(shù):將表達(dá)式轉(zhuǎn)換為字符串,注意與Str函數(shù)的區(qū)別。如果一個(gè)函數(shù)的參數(shù)是字符串類型,當(dāng)我們給它一個(gè)沒有確定類型的值時(shí),會(huì)報(bào)錯(cuò),類型不匹配,我們可以定義一個(gè)字符串變量,把要作為參數(shù)的值先賦值給這個(gè)字符串變量,再把這個(gè)字符串變量作為函數(shù)的參數(shù);或者我們?cè)谶@個(gè)參數(shù)值外面加一層CStr函數(shù)。
    25、StrConv函數(shù):將字符串轉(zhuǎn)換為指定的格式(如小寫、大寫、首字母大寫、Unicode等),這個(gè)函數(shù)沒怎么用過,在工作表中用過Upper、Lower、Proper,分別是大寫、小寫、首字母大寫:
    語法
    StrConv(string, conversion, [LCID])'// string: 要轉(zhuǎn)換的字符串。'// conversion: 指定轉(zhuǎn)換類型的數(shù)字(vbUpperCase,vbLowerCase,vbProperCase ,vbUnicode等)。'// LCID(可選): 指定的區(qū)域設(shè)置ID。
    26、正則表達(dá)式,這是一個(gè)處理字符串的強(qiáng)大具,我們?cè)谇捌诜窒磉^【正則表達(dá)式Regular Expression】,不再贅述。

    后記

    1、整理這樣的內(nèi)容,比較無聊,大部?jī)?nèi)容來自ChatGPT,不過還是有收獲的,至少學(xué)到了一個(gè)Filter函數(shù),也算是我的一個(gè)學(xué)習(xí)過程吧,或者說是一種學(xué)習(xí)方法。
    2、有部分函數(shù)如InStrB、InStrRevB、MidB、LeftB、RightB函數(shù),用于處理二進(jìn)制數(shù)據(jù)的,基本用不到,就沒有羅列。
    3、我們基本上僅僅說明了函數(shù)的主要用法,需要全面詳細(xì)了解的可以參考微軟官方網(wǎng)站上的使用說明。
    好,今天就到這里,我們下期再會(huì)!

    ~~~~~~End~~~~~~

    安利小店
    安利的牙膏非常不錯(cuò),用了以后就不想再用其他的了;洗潔精洗衣液也是日常必備,用過都說好!

    合谷醫(yī)療
    合谷醫(yī)療專攻各種疑難雜癥,尤其擅長(zhǎng)抑郁癥焦慮失眠兒童神經(jīng)發(fā)育異常多動(dòng)癥自閉孤獨(dú)癥腰頸椎疾病治療,可謂神乎其技!體驗(yàn)過的直呼早點(diǎn)來就好了

    我的付費(fèi)知識(shí)星球:Excel活學(xué)活用
    幫助VBA初學(xué)者提高VBA編程水平,歡迎加入!

    喜歡就點(diǎn)個(gè)、點(diǎn)在看留言評(píng)論、分享一下唄!感謝支持!

    • Excel問題,請(qǐng)?jiān)谖恼孪旅媪粞杂懻摚?/span>或者加入我的付費(fèi)知識(shí)星球免費(fèi)提問

      轉(zhuǎn)藏 分享 獻(xiàn)花(0

      0條評(píng)論

      發(fā)表

      請(qǐng)遵守用戶 評(píng)論公約

      類似文章 更多

      主站蜘蛛池模板: 97人妻碰碰视频免费上线| 又黄又硬又湿又刺激视频免费| 亚洲高清WWW色好看美女| 国产SM重味一区二区三区| 国内精品国产成人国产三级| 欧美极品色午夜在线视频| 爱情岛亚洲AV永久入口首页| 特级毛片A级毛片免费观看网站| 99久久国产成人免费网站| 日本大胆欧美人术艺术| 国产丰满乱子伦无码专区| 久久综合九色综合97婷婷| 欧美乱码伦视频免费| 制服丝袜美腿一区二区| 婷婷久久综合九色综合88| 天下第二社区在线视频| 久久毛片少妇高潮| 久久婷婷五月综合色国产免费观看 | 欧美中文字幕无线码视频| 亚洲A成人片在线播放| 韩国三级在线 中文字幕 无码| 人妻少妇不满足中文字幕| 熟妇人妻不卡中文字幕| 在线中文字幕国产精品| 老色鬼久久亚洲AV综合| 欧美成人午夜在线观看视频| 国产69精品久久久久999小说| 国产免费午夜福利757| 精品国偷自产在线视频99| 国产99视频精品免视看9| 亚洲成人av综合一区| 国产日产久久高清欧美一区| 99热精国产这里只有精品| 99精品国产中文字幕| 猫咪AV成人永久网站在线观看| 日本高清色WWW在线安全| 深夜av在线免费观看| 好吊视频一区二区三区| 亚洲性线免费观看视频成熟| 日韩丝袜欧美人妻制服| 老师扒下内裤让我爽了一夜|