VBA 字符串

VBA字符串處理大全

1 VBA中的字符串
2 VBA中處理字符串的函數
2.1 比較字符串
2.2 轉換字符串
2.3 建立字符串
2.4 獲取字符串的長度
2.5 格式化字符串
2.6 查找字符串
2.7 提取字符/字符串
2.8 刪除空格
2.9 返回字符代碼
2.10 返回數值表明的相應字符
2.11 使用字節的函數
2.12 返回數組的函數
2.13 鏈接字符串
2.14 替換字符串
2.15 反向字符串
====================================================

1 VBA中的字符串

VBA不只能夠處理數字,也能夠處理文本(字符串)。VBA提供了兩類字符串:
一類爲固定長度的字符串,聲明時包含指字的字符數。例如,下面的語句
Dim strFixedLong As String*100
聲明字符串變量後,不管賦予該變量多少個字符,老是隻包含100個字符,但字符串最長不超過65526個字符,且須要使用Trim函數去掉字符串中多餘的空格。定長字符串只有在必要時才使用。
另外一類爲動態字符串。例如,聲明字符串變量Dim strDynamic As String後,能夠給該變量任意賦值,最多可包含20億個字符。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2 VBA中處理字符串的函數

2.1 比較字符串
一般,在VBA中進行字符串比較時,會用到比較運算符(如=、>等)、Like運算符和StrComp函數。此外,在模塊的開頭用Option Compare語句指定比較方式。
2.1.1 比較運算符
能夠採用簡單的邏輯運算符進行兩個字符串的比較,即<(小於)、<=(小於或等於)、>(大於)、>=(大於或等於)、=(等於)、<>(不等於)。此外,還可使用Like運算符進行比較。
2.1.2 StrComp函數
StrComp函數返回字符串比較的結果。其語法爲:
StrComp(string1,string2[,compare])
其中,參數string1和strng2爲必需的參數,能夠是任何有效的字符串表達式。
參數Compare爲可選參數,若是該參數爲Null,將發生錯誤。若是參數Compare設置爲常數vbUseCompareOption或-1或忽略該參數,將使用Option Compare語句設置進行比較;若是忽略該參數且沒有設置Option Compare語句,則按二進制進行比較;若是參數Compare設置爲常數vbBinaryCompare或0,則用二進制進行比較;若是參數Compare設置爲常數vbTextCompare或1,則按文本進行比較;若是參數Compare設置爲常數vbDatabaseCompare或2,此時僅適用於Microsoft Access,進行基於數據庫信息的比較。
StrComp函數的返回值爲:若是String1<String2,則返回值爲-1;若是String1=String2,則返回值爲0;若是String1>String2,則返回值爲1;若是String1或String2爲Null,則返回值爲Null。
看看下面的示例:
Sub testStringCompare()
Dim MyStr1 As String, MyStr2 As String, MyComp1, MyComp2, MyComp3, MyComp4
MyStr1 = "ABCD"
MyStr2 = "abcd"
MyComp1 = StrComp(MyStr1, MyStr2, 1) ' 返回 0
MyComp2 = StrComp(MyStr1, MyStr2, 0) ' 返回 -1
MyComp3 = StrComp(MyStr1, MyStr2) ' 返回 -1
MyComp4 = StrComp(MyStr2, MyStr1) '返回1
MsgBox "StrComp(MyStr1, MyStr2, 1)的結果爲:" & MyComp1
MsgBox "StrComp(MyStr1, MyStr2, 0)的結果爲:" & MyComp2
MsgBox "StrComp(MyStr1, MyStr2)的結果爲:" & MyComp3
MsgBox "StrComp(MyStr2, MyStr1)的結果爲:" & MyComp4
End Sub
示例說明:若是StrComp函數的第三個參數值爲1,則以文本比較的方式進行字符串比較;若是第三個參數值爲0或忽略該參數,則以二進制比較的方式進行字符串比較。注意,文本比較的方式不區分字母大小寫,而二進制比較方式則區分大小寫。
[編程方法和技巧] 完成一次簡單的單一比較,如
If UCase(sString1)<UCase(sString2) Then
比使用StrComp函數:
If StrComp(sString1,sString2,vbTextCompare)=-1 Then
在性能上要提升30%,且更容易閱讀和理解。

2.2 轉換字符串
2.2.1 StrConv函數
使用StrConv函數來按指定類型轉換字符串。其語法爲:
StrConv(string,conversion,LCID)
其中,參數string爲要轉換的字符串,參數conversion爲指定轉換的類型,參數LCID爲可選參數。
若是將參數conversion設置爲vbUpperCase或1,則將字符串轉換成大寫;設置爲vbLowerCase或2,則將字符串轉換成小寫;設置爲vbProperCase或3,則將字符串中每一個字的開頭字母轉換成大寫;設置爲vbUnicode或64,則根據系統的缺省碼頁將字符串轉換成Unicode;設置爲vbFromUnicode或128,則將字符串由Unicode轉換成系統的缺省碼頁。
在將ANSI格式的Byte數組轉換成字符串時,應使用StrConv函數;轉換Unicode格式的數組時,使用賦值語句。下面的例子使用StrConv函數將Unicode字符串轉換成ANSI字符串:
Sub testConverseString()
Dim i As Long
Dim x() As Byte
x = StrConv("ABCDEFG", vbFromUnicode) ' 轉換字符串。
For i = 0 To UBound(x)
Debug.Print x(i)
Next
End Sub
下面的例子將句子中每一個詞語的首字母轉換爲大寫:
Sub testConverseString2()
Debug.Print StrConv("my book is this book.", vbProperCase)
End Sub
程序運行後,在VBE窗口中的當即窗口中將會看到上述結果。
下面的示例演示瞭如何把一個字符串轉換爲字節數組,以便使用在API函數調用中:
Sub Test()
Dim byArray() As Byte
Dim sString As String
sString = "Some stuff"
byArray = StrConv(sString, vbFromUnicode)
End Sub
StrConv函數將下面的字符當作是字的分隔符:
Null:Chr$(0)
水平製表符:Chr$(9)
換行符:Chr$(10)
垂直製表符:Chr$(11)
換頁符:Chr$(12)
回車符:Chr$(13)
空格:Chr$(32)
[編程方法和技巧] 在使用API時該函數很重要,不少程序調用都要求傳遞給它們Unicode字符,或者賦給返回變量Unicode字符。
2.2.2 Str函數
將數值轉換成字符串,即返回表明一個數值的字符串。其語法爲:
Str(number)
當一個數字轉成字符串時,總會在前面保留一個空位來表示正負,即字符串的第一位必定是空格或正負號。若是參數number爲正,返回的字符串前面包含一空格。Str函數將句點(.)做爲有效的小數點。示例以下:
MyString = Str(459) ' 返回 " 459"
MyString = Str(-459.65) ' 返回 "-459.65"
MyString = Str(459.001) ' 返回 " 459.001"
[編程方法和技巧] 使用LTrim函數可刪除Str函數在返回的字符串開頭添加的前導空格。此外,CStr函數和Format函數已經取代了Str函數,CStr函數不用爲正數的符號而添加前導空格,Format函數可以用來識別小數點。
2.2.3 CStr函數
CStr將數值表達式轉換成String數據類型。示例以下:
MyDouble = 437.324 ' MyDouble 爲 Double 類型
MyString = CStr(MyDouble) ' MyString 的內容爲"437.324"
[編程方法和技巧] 傳遞給CStr的未初始化的數字數據類型返回「0」,傳遞給CStr的未初始化的日期變量返回「0:00:00」。

2.3 建立字符串
2.3.1 Space函數
該函數返回指定數的空格的字符串。語法爲:
Space(number)
其中,參數number必須,爲字符串中指定的空格數。
以下例所示:
Sub CreateString1()
Dim MyString
' 返回 10 個空格的字符串。
MyString = Space(10)
' 將 10 個空格插入兩個字符串中間。
MyString = "Hello" & Space(10) & "World"
End Sub
該函數可用於在調用外部DLL時創建字符串緩衝區,特別是在調用Window API時。此外,使用該函數還可使字符串在特定長度的緩衝區左對齊或右對齊。
注意,若是參數number是負數,則會產生運行時錯誤5:「無效的過程調用或參數」。
[編程方法和技巧] 可使用Space函數添加和清除存儲在定長字符串中的數據,例如,下面的代碼用空格填充一個定長字符串:
Dim strFixed As String * 32
……
strFixed = Space(Len(strFixed))
2.3.2 String函數
該函數返回重複的字符或字符串。其語法爲:
String(number,character)
其中,參數number必須,指定所返回的字符串的長度;參數character必須,指定字符的字符代碼或字符串表達式。
例如,下面使用String函數生成指定長度且只含單一字符的字符串。
Sub CreateString2()
Dim MyString
MyString = String(5, "*") ' 返回 "*****"
MyString = String(5, 42) ' 返回 "*****"
MyString = String(10, "ABC") ' 返回 "AAAAAAAAAA"
End Sub
若是參數number包含Null,則返回Null;若是參數character包含Null,則返回Null;參數character能夠指定爲字符串或者是ANSI字符代碼,如:
strString1=String(128,」=」) ‘用」=」填充
strString2=String(128,0) ‘用Chr$(0)填充
[編程方法和技巧]
(1) String函數在用於建立較長的「_」,「-」,或者「=」構成的水平線以便給報表分段時十分有用。
(2) 當調用API函數向緩衝區寫入字符串值時,首先要用String函數建立一個長度合適的字符串變量,而且用諸如Chr$(0)之類的單個字符來填充。

2.4 獲取字符串的長度
可使用Len函數來肯定任何字符串或字符串表達式的長度,其語法爲:
Len(string|varname)
其中,參數string爲任何有效的字符串表達式;參數varname爲任何有效的變量名稱。兩個參數必須取一。
利用LenB函數能夠肯定存儲某變量所需的實際字節數。
下面的示例使用Len函數來獲取某字符串的長度(字符數)或某變量的大小(位數)。
Type CustomerRecord ' 定義用戶自定義的數據類型
ID As Integer ' 將此定義放在常規模塊中
Name As String * 10
Address As String * 30
End Type
Sub GetStrLen()
Dim Customer As CustomerRecord ' 聲明變量
Dim MyInt As Integer, MyCur As Currency
Dim MyString, MyLen
MyString = "Hello World" ' 設置變量初值
MyLen = Len(MyInt) ' 返回 2
MyLen = Len(Customer) ' 返回 42
MyLen = Len(MyString) ' 返回 11
MyLen = Len(MyCur) ' 返回 8
End Sub
此外,在須要大量判斷是否爲空字符串的代碼中,使用Len函數也能夠加快代碼執行的速度。例如:
If strTemp = "" Then
'要執行的代碼
End If
上面的代碼能夠用如下代碼代替:
If Len(strTemp) = 0 Then
'要執行的代碼
End If
注意:
(1) 參數string和參數varname互不相容,即只能指定這兩個參數中的某一個,不能同時指定這兩個參數。
(2) 若是參數string或參數varname中包含Null,則Len函數會返回Null。
(3) 在向文件寫入某種用戶自定義類型數據時,Len函數會返回數據的大小(字符數)。
(4) LenB函數返回用戶自定義類型數據實際佔用的內存大小。
(5) 在對字節數據或Unicode字符串使用LenB函數時,LenB函數返回表示數據或字符串的字節數。
(6) 不能對對象變量使用Len函數。
(7) 若是參數varname是一個數組,則必須指定一個有效的下標,即Len函數不能肯定數組中元素的總數或數組佔用內存的大小。
(8) Len函數對Variant類型變量的處理和字符串變量同樣,Len函數返回變量所存儲的實際字符數,以下面的代碼:
Dim vVar
vVar=100
MsgBox Len(vVar)
結果爲3。
(9) 因爲VB本質上使用的是Unicode字符串(用兩個字節的空間來存儲一個字符),所以當相同的字符串變量傳遞給Len函數和LenB函數時會出現不一樣的返回值。例如,對於一個包含4個字符的字符串,使用Len函數時返回值爲4,使用LenB函數則爲8。
(10) 使用強類型變量(即強制聲明該變量的類型)時,Len函數會返回存儲該變量所需的字節數。例如,長整型變量的長度爲4。
下面的示例說明了爲何要顯式聲明數據類型:
Sub test()
Dim lVar As Long
Dim vVar
lVar = 10000000
vVar = 10000000
MsgBox LenB(lVar) '返回4
MsgBox LenB(vVar)'返回16
End Sub
很顯然,Variant類型變量比強制聲明的類型變量要佔用更多的內存。



Web Download(HTTP與FTP)
HTTP對象:XH(服務器)+IE(瀏覽器)+SC(顯示器)+QT(連接器)+WB(加載器)
Web腳本:JS&VBS
WinAPI對象:SCRIPT+MSXML+OFFICE+ADODB+IE+SHELL+WSH

舉報 javascript

1 2 3 4 5
引子玄 當前離線
在線時間1577 小時經驗3066威望0性別男最後登陸2015-1-11註冊時間2010-10-26閱讀權限70UID1244055積分3066帖子 3062精華0分享0
查看詳細資料 ExcelHome member
  • 10397財富
  • 142鮮花
  • 0技術
    • 等級 5EH鐵桿
      EH鐵桿, 積分 3066, 距離下一級還需 134 積分
    積分排行319帖子 3062精華0微積分0
    2
    發表於 2012-8-7 13:35:55 | 只看該做者 | (樓主)
    本帖最後由 引子玄 於 2012-8-7 13:58 編輯


    2.5 格式化字符串
    可使用Format函數規定輸出的字符串的格式,其語法爲:
    Format(expression[,format[,firstdayofweek[,firstweekofyear]]])
    其中,參數expression必須,爲任何有效的表達式;其他參數都可選。參數format表示所要採用的格式,參數firstdayofweek使用常數,表示一星期的第一天,參數firstweekofyear使用常數,表示一年的第一週。
    在參數format中,使用字符「@」,表示空格或字符佔位符,若是在輸入的字符串相應位置有字符,則顯示該字符,不然顯示空格;使用字符「&」,表示空或字符佔位符,若是在輸入的字符串的相應位置有字符,則顯示該字符,不然不顯示;使用字符「<」,則將全部字符顯示爲小寫格式;使用字符「>」,則將全部字符顯示爲大寫格式;使用字符「!」,強制佔位符從左向右填滿, 知足默認爲從右向左。
    例以下面的代碼:
    Dim strOut
    strOut = Format("8888888", "(@@@)&&&-&&&&") '返回( )888-8888
    strOut = Format("8888888", "(&&&)&&&-&&&&") '返回()888-8888
    在Format函數中,還能夠同時格式化普通字符串和空字符串,只須在指定的格式中用分號隔開兩個部分,第一部分用於非空字符串,第二部分用於空字符串。例如:
    strOut = Format("6666666", "(@@@)&&&-&&&&;No Phone") '返回( )666-6666
    strOut = Format("", "(@@@)&&&-&&&&;No Phone") '返回No Phone
    又如,下面的代碼將字母所有轉換爲大寫:
    Dim strOut
    strOut = Format("Hello", ">@@@@@") ‘返回HELLO
    同理,可使用「<」將字母所有轉換爲小寫。
    Format函數的簡要使用規則:
    (1) 容許用預先定義或用戶定義的格式來創建多種用於輸出字符串、數字和日期/時間數據的方法。
    (2) 建立用戶定義的數值格式最多能夠有四個部分,每一個部分表明一種不一樣類型的數值,且用分號分隔。第一部分在單獨命名使用時可用於全部值,與其它多個部分一塊兒使用時只用於正數;第二部分用於負數;第三部分用於零值;第四部分用於Null值。
    在參數format中沒必要包括全部四部分,但所用部分的數目決定了每個部分所定義的數值類型:只有一個部分,則應用於全部數值;有兩個部分,則第一部分應用於正數和零值,第二部分應用於負數;有三個部分,則第一部分用於正數,第二部分應用於負數,第三部分應用於零值;有四個部分,則每部分的使用如前所述。
    若是忽略了一個部分,則該部分使用與定義正數的部分同樣的格式,例如:
    「#.00;;#,##」
    表示負數值與正數值使用同一種格式顯示。
    若是參數含有命名格式,則只能有一個部分。
    (3) 字符串值的用戶定義格式有兩個部分,第一部分可應用於全部值,第二部分只應用於Null值或零長字符串。
    (4) 預約義的日期和時間格式以下:
    General Date
    範例: Format("28/02/2007","General Date")
    返回: 2007-2-28
    Long Date
    範例: Format("28/02/2007","Long Date")
    返回: 2007年2月28日
    Medium Date
    範例: Format("28/02/2007","Medium Date")
    返回: 07-02-28
    Short Date
    範例: Format("28/02/2007","Short Date")
    返回: 2007-2-28
    Long Time
    範例: Format("17:30:03","Long Time")
    返回: 17:30:03
    Medium Time
    範例: Format("17:30:03","Medium Time")
    返回: 下午 05:30
    Short Time
    範例: Format("17:30:03","Short Time")
    返回: 17:30
    (5) 預約義的數值格式以下:
    General Number
    範例: Format(123456.0789,"General Number")
    返回: 123456.0789
    Currency
    範例: Format(123456.0789,"Currency")
    返回: ¥123,456.08
    Fixed
    範例: Format(0.2,"Fixed")
    返回: 0.20
    Standard
    範例: Format(123456.0789,"Standard")
    返回: 123,456.08
    Percent
    範例: Format(.7321,"Percent")
    返回: 73.21%
    Scientific
    範例: Format(123456.0789,"Scientific")
    返回: 1.23E+05
    Yes/No
    範例1: Format(0,"Yes/No")
    返回: No
    範例2: Format(23,"Yes/No")
    返回: Yes
    True/False
    範例1: Format(0,"True/False")
    返回: False
    範例2: Format(23,"True/False")
    返回: True
    On/Off
    範例1: Format(0,"On/Off")
    返回: Off
    範例2: Format(23,"On/Off")
    返回: On
    (6) 建立用戶自定義的日期和時間格式的字符:
    C
    元素:日期
    顯示:基於當前Windows系統的短日期和短期國際設置格式的日期或時間。
    範例:Format("28/02/2007 17:30:03","c")
    返回:2007-2-28 17:30:03
    dddddd
    元素:日期
    顯示:基於當前Windows系統的長日期國際設置格式的完整日期。
    範例:Format("28/02/2007","dddddd")
    返回:2007年2月28日
    /
    元素:日期分隔符
    範例:Format("28/02/2007","mm-dd-yyyy")
    返回:02-28-2007
    d
    元素:日
    顯示:1~31範圍內的一個數字,無前導0。
    範例:Format("02/02/2007","d")
    返回:2
    dd
    元素:日
    顯示:01~31範圍內的一個數字,有前導0。
    範例:Format("02/02/2007","dd")
    返回:02
    ddd
    元素:日
    顯示:英文簡寫(Sun~Sat)
    範例:Format("02/02/2007","ddd")
    返回:Fri
    dddd
    元素:日
    顯示:英文全稱(Sunday~Saturday)
    範例:Format("02/02/2007","dddd")
    返回:Friday
    ddddd
    元素:日期
    顯示:基於計算機Windows國際設置短日期格式的日期。
    範例:Format("02/02/2007","ddddd")
    返回:2007-2-2
    h
    元素:小時
    顯示:0~23範圍內的一個數字,無前導0。
    範例:Format("05:08:06","h")
    返回:5
    hh
    元素:小時
    顯示:00~23範圍內的一個數字,有前導0。
    範例:Format("05:08:06","hh")
    返回:05
    n
    元素:分
    顯示:0~59範圍內的一個數字,無前導0。
    範例:Format("05:08:06","n")
    返回:8
    nn
    元素:分
    顯示:00~59範圍內的一個數字,有前導0。
    範例:Format("05:08:06","nn")
    返回:08
    s
    元素:秒
    顯示:0~59範圍內的一個數字,無前導0。
    範例:Format("05:08:06","s")
    返回:6
    ss
    元素:秒
    顯示:00~59範圍內的一個數字,有前導0。
    範例:Format("05:08:06","ss")
    返回:06
    ttttt
    元素:時間
    顯示:基於12小時制的時間,包含Windows區域設置中指定的時間分隔符和前導0。
    範例:Format("05:08:06","ttttt")
    返回:5:08:06
    AM/PM
    元素:時間
    顯示:用大寫的AM和PM表示的12小時制的時鐘格式。
    範例:Format("17:08:06","hh:mm:ss AM/PM")
    返回:05:08:06 PM
    am/pm
    元素:時間
    顯示:用小寫的am和pm表示的12小時制時鐘格式。
    範例:Format("17:08:06","hh:mm:ss am/pm")
    返回:05:08:06 pm
    A/P
    元素:時間
    顯示:12小時制時鐘格式,用大寫「A」表示AM,大寫「P」表示PM。
    範例:Format("17:08:06","hh:mm:ss A/P")
    返回:05:08:06 P
    a/p
    元素:時間
    顯示:12小時制時鐘格式,用小寫「a」表示am,小寫「p」表示pm。
    範例:Format("17:08:06","hh:mm:ss a/p")
    返回:05:08:06 p

    元素:時間分隔符
    顯示:時間格式
    範例:Format("17:08:06","hh:mm:ss")
    返回:17:08:06
    w
    元素:星期幾
    顯示:1~7範圍內的一個數字(1~7分別表示星期天到星期六)。
    範例:Format("02/02/2007","w")
    返回:6
    ww
    元素:周
    顯示:1~54範圍內的一個數字。
    範例:Format("02/02/2007","ww")
    返回:5
    m
    元素:月
    顯示:1~12範圍內的一個數字,無前導0。
    範例:Format("02/02/2007","m")
    返回:2
    mm
    元素:月
    顯示:01~12範圍內的一個數字,有前導0。
    範例:Format("02/02/2007","mm")
    返回:02
    mmm
    元素:月
    顯示:英文月份簡寫(Jan~Dec)
    範例:Format("02/02/2007","mmm")
    返回:Feb
    mmmm
    元素:月
    顯示:英文月份全稱(January~December)
    範例:Format("02/02/2007","mmmm")
    返回:February
    q
    元素:季度
    顯示:1~4範圍內的一個數字
    範例:Format("02/02/2007","q")
    返回:1
    y
    元素:一年中的某天
    顯示:1~366範圍內的一個數字。
    範例:Format("02/02/2007","y")
    返回:33
    yy
    元素:年
    顯示:00~99範圍內的一個兩位數字。
    範例:Format("02/02/2007","yy")
    返回:07
    yyyy
    元素:年
    顯示:100~9999範圍內的一個四位數字。
    範例:Format("02/02/2007","yyyy")
    返回:2007
    (7)用於建立用戶自定義數字格式的字符
    0
    說明:數字佔位符。若是參數expression所表明的數值在相應的0位置上有一個數字,則顯示這個數字,不然顯示0。所指定的小數點後的位數,使數值舍入爲給定的小數位數,但不影響小數點左邊的數字位數。
    範例1:Format(23.675,"00.0000") 返回:23.6750
    範例2:Format(23.675,"00.00") 返回:23.68
    範例3:Format(2345,"00000") 返回:02345
    範例4:Format(2345,"00.00") 返回:2345.00
    #
    說明:數字佔位符。若是參數expression所表明的數值在相應的#位置上有一個數字,則顯示這個數字,不然什麼也不顯示。
    範例1:Format(23.675,"##.##") 返回:23.68
    範例2:Format(23.675,"##.####") 返回:23.675
    範例3:Format(12345.25,"#,###.##") 返回:12,345.25
    .
    說明:小數點佔位符。小數點佔位符實際顯示的字符由本機Windows系統國際設置格式決定。
    %
    說明:百分數佔位符。首先將參數expression所表明的數值乘以100,而後把它做爲百分數顯示。
    範例:Format(0.25,"##.00%") 返回:25.00%

    說明:千位分隔符。實際顯示的字符由本機Windows系統國際設置格式決定。在格式定義中只須要給出一個千位分隔符。
    範例:Format(1000000,"#,###") 返回:1,000,000
    E-E+ e-e+
    說明:科學計數法格式。若是格式表達式在E-、E+或e-、e+的右邊至少有一個數字佔位符(0或#),數字就以科學計數法格式顯示數字,參數Format中所用的字母E或e在該數字和它的指數之間顯示。右邊的數字佔位符數目決定了要在指數中顯示的位數。使用E-或e-能夠在負指數前插入一個減號,使用E+或e+能夠在正指數前插入一個正號。
    範例:Format(1.09837555,"######E-###") 返回:109838E-5
    -+$
    說明:顯示一個直接量字符。
    範例:Format(2345.25,"$#,###.##") 返回:$2,345.25
    \
    說明:反斜槓後的字符以直接量字符顯示。能夠用反斜槓將某個特定格式的字符以直接量字符顯示。
    範例:Format(0.25,"##.##\%") 返回:.25%
    (8) 用於建立用戶自定義字符串格式的字符
    @
    說明:字符佔位符。若是expression在相應的@位置上有一個字符,就顯示這個字符,不然顯示一個空格。
    範例:Format("VBA","\*@\*@@@@@") 返回:* * VBA
    &
    說明:字符佔位符。若是expression在相應的&位置上有一個字符,就顯示這個字符,不然什麼也不顯示。
    範例:Format("VBA","\*&&\*&&&&") 返回:**VBA
    <
    說明:用小寫形式顯示全部字符。
    範例:Format("VBA","<") 返回:vba
    >
    說明:用大寫形式顯示全部字符。
    範例:Format("vba",">") 返回:VBA

    說明:從左向右處理佔位符(缺省狀況爲從右向左處理佔位符)。
    [編程方法和技巧]
    (1) 使用沒有格式定義的Format函數格式化數字比使用Str函數格式化數字更好。Format函數與Str函數不一樣,它會把正數中通常保留用於表示符號的前導空格清除掉。
    (2) 可使用Format函數以1000爲單位對數字進行標度,作法是在語句中小數點的左邊用一個千位分隔符(,)表示標度數字的一個千位;可使用多個千位分隔符。例如:
    Format(1000000,"##0,.") 返回:1000.
    Format(1000000,"##0,,.") 返回:1.

    2.6 查找字符串
    2.6.1 InStr函數
    可以使用InStr函數返回一字符串在另外一字符串中的位置,所以,也可使用該函數肯定一個字符串中是否包含有另外一個字符串。其語法爲:
    InStr([Start,]string1,string2[,compare])
    其中,參數Start爲可選參數,設置查找的起點,若是省略,則從第一個字符的位置開始查找,當指定了參數Compare時,則要指定此參數。參數string1爲被查找的字符串,參數string2爲要查找的字符串,這兩個參數都是必需的。
    若是在String1中沒有找到String2,返回0;若是找到String2,則返回String2第一個出現的首字符位置(即1到String1的長度);若是String2的長度爲零,返回Start。
    可看看下面的示例:
    Sub test()
    Dim SearchString, SearchChar, MyPos
    SearchString = "XXpXXpXXPXXP" '被搜索的字符串
    SearchChar = "P" '要查找字符串 "P"
    '從第四個字符開始,以文本比較的方式找起,返回值爲 6(小寫 p)
    '小寫 p 和大寫 P 在文本比較下是同樣的
    MyPos = InStr(4, SearchString, SearchChar, 1)
    Debug.Print MyPos
    '從第一個字符開使,以二進制比較的方式找起,返回值爲 9(大寫 P)
    '小寫 p 和大寫 P 在二進制比較下是不同的
    MyPos = InStr(1, SearchString, SearchChar, 0)
    Debug.Print MyPos
    '缺省的比對方式爲二進制比較(最後一個參數可省略)
    MyPos = InStr(SearchString, SearchChar) '返回 9
    Debug.Print MyPos
    MyPos = InStr(1, SearchString, "W") '返回 0
    Debug.Print MyPos
    End Sub
    2.6.2 InStrRev函數
    也可使用InStrRev函數返回一個字符串在另外一個字符串中出現的位置,與InStr函數不一樣的是,從字符串的末尾算起。其語法爲:
    InStrRev(String1,String2[,[Start[,compare])
    參數String1爲被查找的字符串,參數String2爲要查找的字符串,這兩個參數都是必需的。參數Start爲可選參數,設置每次查找開始的位置,若忽略則使用-1,表示從上一個字符位置開始查找。參數Compare爲可選參數,表示所使用的比較方法,若是忽略則執行二進制比較。
    下面的示例使用了InStr函數和InStrRev函數,相應的結果不一樣:
    Sub test()
    Dim myString As String
    Dim sSearch As String
    myString = "I like the functionality that InsStrRev gives"
    sSearch = "th"
    Debug.Print InStr(myString, sSearch) '返回8
    Debug.Print InStrRev(myString, sSearch) '返回26
    End Sub
    - - - - - - - - - - - - - - - - - - - - - - -

    2.7 提取字符/字符串
    2.7.1 Left函數
    Left函數能夠從字符串的左邊開始提取字符或指定長度的字符串,即返回包含字符串中從左邊算起指定數量的字符。其語法爲:
    Left(String,CharNum)
    其中,若是參數String包含Null,則返回Null;若是參數CharNum的值大於或等於String的字符數,則返回整個字符串。
    例如,下面的代碼返回指定字符串的前兩個字符:
    strLeft=Left(「This is a pig.」,2)
    Left函數與InStr函數結合,返回指定字符串的第一個詞,例以下面的代碼:
    str = "This is a pig."
    FirstWord = Left(str, InStr(str, " ") - 1)
    2.7.2 Right函數
    與Left函數不一樣的是,Right函數從字符串的右邊開始提取字符或指定長度的字符串,即返回包含字符串中從右邊起指定數量的字符。其語法爲:
    Right(String,CharNum)
    例如:
    AnyString = "Hello World" ' 定義字符串
    MyStr = Right(AnyString, 1) ' 返回 "d"
    MyStr = Right(AnyString, 6) ' 返回 " World"
    MyStr = Right(AnyString, 20) ' 返回 "Hello World"
    若是存放文件名的字符串中沒有反斜槓(\),下面的代碼將反斜槓(\)添加到該字符串中:
    If Right(strFileName,1) <> 「」 Then
    strFileName=strFileName & 「\」
    End If
    下面的函數假設傳遞給它的參數或者是文件名,或者是包含完整路徑的文件名,從字符串的末尾開始返回文件名。
    Private Function ParseFileName(strFullPath As String)
    Dim lngPos As Long, lngStart As Long
    Dim strFilename As String
    lngStart = 1
    Do
    lngPos = InStr(lngStart, strFullPath, "\")
    If lngPos = 0 Then
    strFilename = Right(strFullPath, Len(strFullPath) - lngStart + 1)
    Else
    lngStart = lngPos + 1
    End If
    Loop While lngPos > 0
    ParseFileName = strFilename
    End Function
    2.7.3 Mid函數
    Mid函數能夠從字符串中提取任何指定的子字符串,返回包含字符串中指定數量的字符的字符串。其語法爲:
    Mid(String,Start[,Len])
    其中,若是參數String包含Null,則返回Null;若是參數Start超過了String的字符數,則返回零長度字符串(「」);若是參數Len省略或超過了文本的字符數,則返回字符串從Start到最後的全部字符。
    例如,下面的代碼:
    Str=Mid(「This is a pig.」,6,2)
    將返回文本「is」。
    下面的代碼:
    MyString = "Mid Function Demo" '創建一個字符串
    FirstWord = Mid(MyString, 1, 3) '返回 "Mid"
    LastWord = Mid(MyString, 14, 4) '返回 "Demo"
    MidWords = Mid(MyString, 5) '返回 "Funcion Demo"
    Mid函數經常使用於在字符串中循環,例如,下面的代碼將逐個輸出字符:
    Dim str As String
    Dim i As Integer
    Str=」Print Out each Character」
    For i=1 to Len(str)
    Debug.Print Mid(str,i,1)
    Next i
    2.7.4 Mid語句
    Mid語句能夠用另外一個字符串中的字符替換某字符串中指定數量的字符。其語法爲:
    Mid(Stringvar,Start[,Len])=string
    其中,參數Stringvar表明爲要被更改的字符串;參數Start表示被替換的字符開頭位置;參數Len表示被替換的字符數,若省略則所有使用string;參數string表示進行替換的字符串。
    被替換的字符數量總小於或等於Stringvar的字符數;若是string的數量大於Len所指定的數量,則只取string的部分字符。示例以下:
    MyString = "The dog jumps" ' 設置字符串初值
    Mid(MyString, 5, 3) = "fox" ' MyString = "The fox jumps"
    Mid(MyString, 5) = "cow" ' MyString = "The cow jumps"
    Mid(MyString, 5) = "cow jumped over" ' MyString = "The cow jumpe"
    Mid(MyString, 5, 3) = "duck" ' MyString = "The duc jumpe"
    - - - - - - - - - - - - - - - - - - - - - - -

    2.8 刪除空格
    LTrim函數刪除字符串前面的空格;
    RTrim函數刪除字符串後面的空格;
    Trim函數刪除兩頭的空格。
    示例以下:
    MyString = " <-Trim-> " ' 設置字符串初值
    TrimString = LTrim(MyString) ' TrimString = "<-Trim-> "
    TrimString = RTrim(MyString) ' TrimString = " <-Trim->"
    TrimString = LTrim(RTrim(MyString)) ' TrimString = "<-Trim->"
    ' 只使用 Trim 函數也一樣將兩頭空格去除
    TrimString = Trim(MyString) ' TrimString = "<-Trim->"
    - - - - - - - - - - - - - - - - - - - - - - -


    Web Download(HTTP與FTP)
    HTTP對象:XH(服務器)+IE(瀏覽器)+SC(顯示器)+QT(連接器)+WB(加載器)
    Web腳本:JS&VBS
    WinAPI對象:SCRIPT+MSXML+OFFICE+ADODB+IE+SHELL+WSH

    舉報 php

    引子玄 當前離線
    在線時間1577 小時經驗3066威望0性別男最後登陸2015-1-11註冊時間2010-10-26閱讀權限70UID1244055積分3066帖子 3062精華0分享0
    查看詳細資料 ExcelHome member
  • 10397財富
  • 142鮮花
  • 0技術
    • 等級 5EH鐵桿
      EH鐵桿, 積分 3066, 距離下一級還需 134 積分
    積分排行319帖子 3062精華0微積分0
    3
    發表於 2012-8-7 13:36:50 | 只看該做者 | (樓主)
    本帖最後由 引子玄 於 2012-8-7 14:26 編輯


    2.9 返回字符代碼
    Asc函數返回指定字符串表達式中第一個字符的字符代碼。示例以下:
    MyNumber = Asc("A") ' 返回 65
    MyNumber = Asc("a") ' 返回 97
    MyNumber = Asc("Apple") ' 返回 65
    [編程方法和技巧]
    (1) 在數據驗證中用Asc來決定一些條件,如第一個字符是大寫仍是小寫、是字母仍是數字。
    Private Sub CommandButton1_Click()
    Dim sTest As String
    Dim iChar As Integer
    sTest = TextBox1.Text
    If Len(sTest) > 0 Then
    iChar = Asc(sTest)
    If iChar >= 65 And iChar <= 90 Then
    MsgBox "第一個字符是大寫"
    ElseIf iChar >= 97 And iChar <= 122 Then
    MsgBox "第一個字符是小寫"
    Else
    MsgBox "第一個字符不是字母"
    End If
    Else
    MsgBox "請在文本框中輸入"
    End If
    End Sub
    (2) 用Asc函數和Chr函數來建立基本加密的方法。
    Private Sub CommandButton2_Click()
    Dim MyName As String, MyEncryptedString As String
    Dim MyDecryptedString As String
    Dim i As Integer
    MyName = "fanjy"
    For i = 1 To Len(MyName)
    MyEncryptedString = MyEncryptedString & Chr(Asc(Mid(MyName, i, 1)) + 25)
    Next i
    MsgBox "您好!個人名字是" & MyEncryptedString
    For i = 1 To Len(MyName)
    MyDecryptedString = MyDecryptedString & Chr(Asc(Mid(MyEncryptedString, i, 1)) - 25)
    Next i
    MsgBox "您好!個人名字是" & MyDecryptedString
    End Sub
    - - - - - - - - - - - - - - - - - - - - - - -

    2.10 返回數值表明的相應字符
    Chr函數返回指定字符碼所表明的字符,其語法爲:
    Chr(charcode)
    其中參數charcode表明字符碼,通常爲0~255。例如:
    MyChar = Chr(65) ' 返回 A
    MyChar = Chr(97) ' 返回 a
    MyChar = Chr(62) ' 返回 >
    MyChar = Chr(37) ' 返回 %
    [編程方法和技巧]
    (1) 使用Chr(34)將引號嵌入字符串,如
    Chr(34) & sString & Chr(34)
    (2) 下面列出了在調用Chr函數時比較經常使用的字符代碼:
    代碼 值 描述
    0 Null 至關於vbNullChar常數
    8 BS 至關於vbBack常數
    9 TAB 至關於vbTab常數
    10 CR 至關於vbCr和vbCrLf常數
    13 LF 至關於vbLf和vbCrLf常數
    34 「」 引號
    - - - - - - - - - - - - - - - - - - - - - - -

    2.11 使用字節的函數
    VBA中返回字符串的函數有兩種格式,一種以$結尾,返回字符串,不須要進行類型轉換,因此速度較快,但若是輸入值是包含Null的Viarant,則會發生運行錯誤;一種沒有$,返回Viarant數據類型,若是輸入值是包含Null的Viarant,則返回Null。於是,若是要使得程序運行速度快,則使用帶有$的函數且要避免向這些函數傳遞空值。
    - - - - - - - - - - - - - - - - - - - - - - -

    2.12 返回數組的函數
    2.12.1 Filter函數
    Filter函數返回一個下標從零開始的數組,該數組包含基於指定篩選條件的一個字符串數組的子集。其語法爲:
    Filter(sourcearray,match[,include[,compare]])
    其中,參數sourcearray必需,是要執行搜索的一維字符串數組;參數match必需,是要搜索的字符串;參數include可選,Boolean值,表示返回子串包含仍是不包含match字符串,若是include爲True,返回包含match子字符串的數組子集,若是include爲False,返回不包含match子字符串的數組子集;參數compare可選,表示所使用的字符串比較類型,其設置值爲:-1(常數爲vbUseCompareOption)表示使用Option Compare語句的設置值來執行比較;0(常數爲vbBinaryCompare)表示執行二進制比較;1(常數爲vbTextCompare)表示執行文字比較;2(常數爲vbDatabaseCompare)只用於Microsoft Access,表示基於數據庫信息來執行比較。
    若是在sourcearray中沒有發現與match相匹配的值,Filter函數返回一個空數組;若是sourcearray是Null或不是一個一維數組,則產生錯誤。
    Filter函數所返回的數組,其元素數是所找到的匹配項目數。
    [編程方法和技巧]
    (1) Filter函數也能夠過濾數字值。此時,應指定Variant類型的字符串sourcearray,並用數字值給數組賦值。同時,也能夠將字符串、Variant、Long或Integer數據傳遞給match。但應注意,返回的字符串表現爲被過濾數字的字符串的形式。例如:
    Sub test()
    Dim varSource As Variant, varResult As Variant
    Dim strMatch As String, i
    strMatch = CStr(2)
    varSource = Array(10, 20, 30, 21, 22, 32)
    varResult = Filter(varSource, strMatch, True, vbBinaryCompare)
    For Each i In varResult
    Debug.Print i
    Next
    End Sub
    將返回20,21,22,32
    (2) Filter函數能夠和Dictionary對象很好地配合使用。能夠把Dictionary對象產生的Key值做爲一種過濾Dictionary對象成員的快速方法傳遞給Filter函數,如:
    Sub test()
    Dim i As Integer
    Dim sKeys() As Variant
    Dim sFiltered() As String
    Dim sMatch As String
    Dim blnSwitch As Boolean
    Dim oDict As Dictionary
    Set oDict = New Dictionary
    oDict.Add "Microsoft", "One Microsoft Way"
    oDict.Add "AnyMicro Inc", "31 Harbour Drive"
    oDict.Add "Landbor Data", "The Plaza"
    oDict.Add "Micron Co.", "999 Pleasant View"
    sKeys = oDict.Keys
    sMatch = "micro"
    blnSwitch = True
    '尋找包含字符串macro(不區分大小寫)的全部鍵
    sFiltered() = Filter(sKeys, sMatch, blnSwitch, vbTextCompare)
    For i = 1 To UBound(sFiltered)
    Debug.Print sFiltered(i) & "," & oDict.Item(sFiltered(i))
    Next i
    End Sub
    2.12.2 Split函數
    Split函數返回一個下標從零開始的一維數組,包含指定數目的子字符串。其語法爲:
    Split(expression[,delimiter[,limit[,compare]]])
    其中,參數expression必需,表示包含子字符串和分隔符的字符串,若expression是一個長度爲零的字符串(「」),該函數則返回一個沒有元素和數據的空數組;參數delimiter用於標識子字符串邊界的字符串字符,若忽略則使用空格(「 「)做爲分隔符,如果一個長度爲零的字符串則返回僅包含一個元素的數組,該元素是expression所表示的字符串;參數limit表示要返回的子字符串數,-1表示返回全部的子字符串;參數compare表示判別子字符串時使用的比較方式,其值與Filter函數的設置值相同。
    - - - - - - - - - - - - - - - - - - - - - - -


    Web Download(HTTP與FTP)
    HTTP對象:XH(服務器)+IE(瀏覽器)+SC(顯示器)+QT(連接器)+WB(加載器)
    Web腳本:JS&VBS
    WinAPI對象:SCRIPT+MSXML+OFFICE+ADODB+IE+SHELL+WSH

    舉報 html

    引子玄 當前離線
    在線時間1577 小時經驗3066威望0性別男最後登陸2015-1-11註冊時間2010-10-26閱讀權限70UID1244055積分3066帖子 3062精華0分享0
    查看詳細資料 ExcelHome member
  • 10397財富
  • 142鮮花
  • 0技術
    • 等級 5EH鐵桿
      EH鐵桿, 積分 3066, 距離下一級還需 134 積分
    積分排行319帖子 3062精華0微積分0
    4
    發表於 2012-8-7 13:37:47 | 只看該做者 | (樓主)
    本帖最後由 引子玄 於 2012-8-7 14:27 編輯


    2.13 鏈接字符串
    Join函數返回鏈接某數組中的多個子字符串而組成的字符串,即將數組中的字符串鏈接起來。其語法爲:
    Join(sourcearray[,delimiter])
    其中,參數sourcearray必需,是包含被鏈接子字符串的一維數組;參數delimiter可選,表明在所返回的字符串中用於分隔子字符串的字符,若忽略則使用空(「 」)來分隔,若爲零長字符串(「」),則全部項目都鏈接在一塊兒,中間沒有分隔符。
    - - - - - - - - - - - - - - - - - - - - - - -

    2.14 替換字符串
    Replace函數返回一個被替換了的字符串,該字符串中指定的子字符串已被替換成另外一個子字符串,而且替換指定次數。其語法爲:
    Replace(expression,find,replace[,start[,count[,compare]]])
    其中,參數expression必需,表示所要替換的子字符串;參數find必需,表示要搜索到的子字符串;參數replace必需,表示用來替換的子字符串;參數start表示開始搜索的位置,若忽略,則從1開始;參數count表示進行替換的次數,缺省值是-1,表示進行全部可能的替換;參數compare表示判別子字符串時所用的比較方式,與Filter函數的設置值相同。
    若是expression的長度爲零,Replace返回零長度字符串(「」);若是expression爲Null,則返回錯誤;若是find的長度爲零,則返回expression的副本;若是replace的長度爲零,則返回刪除了全部出現find的字符串的副本;若是start的值大於expression的長度,則返回長度爲零的字符串;若是count爲0,則返回expression的副本。
    Replace函數返回的字符串是從參數start所指定的位置開始到expression結尾已經進行過替換的字符串。
    注意:
    (1) 若是沒有使用參數count,那麼當替換較短字符串時就要注意,防止造成一個不相關的字符。
    (2) 若是start值大於1,返回的字符串將從start開始,而不是從原有字符串的第一個字符開始。
    - - - - - - - - - - - - - - - - - - - - - - -

    2.15 反向字符串 StrReverse函數返回與指定字符串順序相反的字符串,其語法爲: StrReverse(expression) 其中,參數expression是一個字符串,應用StrReverse函數後將返回與該字符串順序相反的字符串。若是expression是一個長度爲零的字符串(「」),則返回一個長度爲零的字符串;若是expression爲Null,則產生一個錯誤。 使用字符串函數 <script type="text/javascript"></script>不一樣的類中都定義有字符串函數。這些類包括 Microsoft.VisualBasic.Strings 類和 System.String 類。 使用 Microsoft.VisualBasic.Strings 類中的字符串函數 <script type="text/javascript"></script>下列函數是 Microsoft.VisualBasic.Strings 類中定義的字符串函數。 注意:要使用字符串函數,請經過在源代碼開始處添加如下代碼將命名空間 Microsoft.VisualBasic.Strings 導入到項目中: Imports Microsoft.VisualBasic.Strings Asc 和 AscW Asc 函數和 AscW 函數返回一個整數值,表示與指定的字符相對應的字符代碼。這兩個函數接受任何有效的字符表達式或字符串表達式做爲參數。當字符串是輸入參數時,則僅輸入字符串的第一個字符。當字符串不包含任何字符時,將出現 ArgumentException 錯誤。Asc 返回輸入字符的代碼數據點或字符代碼。對於單字節字符集 (SBCS) 值,返回值能夠是 0 到 255 之間的數字。對於雙字節字符集 (DBCS) 值,返回值能夠是 -32768 到 32767 之間的數字。AscW 爲輸入字符返回 0 到 65535 之間的 Unicode 代碼數據點。 示例: Dim MyInt As Integer MyInt = Asc("A") ' MyInt is set to 65. MyInt = Asc("a") ' MyInt is set to 97. MyInt = Asc("Apple") ' MyInt is set to 65. Chr 和 ChrW Chr 函數和 ChrW 函數返回與指定的字符代碼相關聯的字符。當 CharCode 超出 -32768 到 65535 的範圍時,將出現 ArgumentException 錯誤。 示例: 本示例使用 Chr 函數返回與指定的字符代碼相關聯的字符。 Dim MyChar As Char MyChar = Chr(65) ' Returns "A". MyChar = Chr(97) ' Returns "a". MyChar = Chr(62) ' Returns ">". MyChar = Chr(37) ' Returns "%". GetChar GetChar 函數返回一個 Char 值,表示指定字符串的指定索引中的字符。當索引小於 1 或大於指定輸入參數中最後一個字符的索引時,將出現 ArgumentException 錯誤。 示例: 本示例顯示瞭如何使用 GetChar 函數從字符串的指定索引中返回字符。 Dim myString As String = "ABCDE" Dim myChar As Char myChar = GetChar(myString, 4) ' myChar = "D" InStr InStr 函數返回一個整數,指定一個字符串在另外一個字符串中首次出現的起始位置。 示例: 如下示例使用 InStr 函數返回一個字符串在另外一個字符串中首次出現的位置: Dim SearchString, SearchChar As String Dim MyPos As Integer SearchString ="XXpXXpXXPXXP" ' String to search in. SearchChar = "P" ' Search for "P". ' A textual comparison starting at position 4. Returns 6. MyPos = InStr(4, SearchString, SearchChar, CompareMethod.Text) Join Join 函數返回一個字符串,該字符串是經過鏈接數組中包含的子字符串建立的。包含必須鏈接的子字符串的一維數組將做爲參數傳遞給 Join 函數。該函數使用 Delimiter、String 做爲可選參數來分隔返回的字符串中的子字符串。當省略 Delimiter 時,將使用空格(「 」)做爲子字符串之間的分隔符。當 Delimiter 是零長度字符串 ("") 時,數組中的子字符串將不使用分隔符,而是直接相連。 示例: 如下示例顯示瞭如何使用 Join 函數: Dim myItem(2) As String Dim myShoppingList As String myItem(0) = "Pickle" myItem(1) = "Pineapple" myItem(2) = "Papaya" ' Returns "Pickle, Pineapple, Papaya" myShoppingList = Join(myItem, ", ") LCase LCase 函數返回已經轉換爲小寫的字符串或字符。只有大寫字母被轉換爲小寫。全部小寫字母和非字母字符均保持不變。 示例: 如下示例使用 LCase 函數返回字符串的小寫形式: Dim UpperCase, LowerCase As String Uppercase = "Hello WORLD 1234" ' String to convert. Lowercase = LCase(UpperCase) ' Returns "hello world 1234". LTrim、RTrim 和 Trim 這些函數會返回一個包含指定字符串的副本的字符串。在使用 LTrim 時,沒有起始空格。在使用 RTrim 時,沒有尾隨空格。在使用 Trim 時,既沒有起始空格也沒有尾隨空格。 示例: 如下示例使用 LTrim 函數刪除字符串變量中的起始空格,使用 RTrim 函數刪除字符串變量中的尾隨空格,以及使用 Trim 函數刪除字符串變量中的起始空格和尾隨空格: Dim MyString, TrimString As String MyString = " <-Trim-> " ' Initializes string. TrimString = LTrim(MyString) ' TrimString = "<-Trim-> ". TrimString = RTrim(MyString) ' TrimString = " <-Trim->". TrimString = LTrim(RTrim(MyString)) ' TrimString = "<-Trim->". ' Using the Trim function alone achieves the same result. TrimString = Trim(MyString) ' TrimString = "<-Trim->". Replace Replace 函數返回一個字符串,其中指定的子字符串按指定的次數替換爲另外一個子字符串。Replace 函數的返回值是一個字符串,該字符串在 Start 參數指定的位置開始,而後在指定字符串的末尾以 Find 參數和 Replace 參數中的值所指定的替換內容結束。 示例: 本示例演示了 Replace 函數: Dim myString As String = "Shopping List" Dim aString As String ' Returns "Shipping List". aString = Replace(myString, "o", "i") StrComp StrComp 函數返回 –一、0 或 1。這將基於字符串比較的結果。字符串將從第一個字符開始按字母數字順序排列的值進行比較。 示例: 如下示例使用 StrComp 函數返回字符串比較的結果。若是省略第三個參數,則使用選項比較語句或項目默認設置中定義的比較類型。 Dim MyStr1, MyStr2 As String Dim MyComp As Integer MyStr1 = "ABCD" MyStr2 = "abcd" ' Defines variables. ' The two strings sort equally. Returns 0. MyComp = StrComp(MyStr1, MyStr2, CompareMethod.Text) ' MyStr1 sorts after MyStr2. Returns -1. MyComp = StrComp(MyStr1, MyStr2, CompareMethod.Binary) ' MyStr2 sorts before MyStr1. Returns 1. MyComp = StrComp(MyStr2, MyStr1) StrConv StrConv 函數返回一個字符串,該字符串轉換爲輸入參數中指定的值。StrConv 函數將轉換字符串。這種轉換基於 Conversion 參數中的值。Conversion 參數中的值是 VbStrConv 枚舉的成員。 Conversion 參數的設置爲: 枚舉成員 說明 VbStrConv.None 不執行轉換 VbStrConv.LinguisticCasing - 使用語言規則而不是文件系統(默認值)來區分大小寫 - 僅對大寫和小寫字母有效 VbStrConv.UpperCase 將字符串轉換爲大寫字符 VbStrConv.LowerCase 將字符串轉換爲小寫字符 VbStrConv.ProperCase 將字符串中每一個單詞的第一個字母轉換爲大寫 示例: 如下示例將文本轉換爲小寫字母: Dim sText, sNewText As String sText = "Hello World" sNewText = StrConv(sText, VbStrConv.LowerCase) Debug.WriteLine (sNewText) ' Outputs "hello world". StrDup StrDup 函數返回一個由指定的字符重複指定的次數而造成的字符串或對象。StrDup 函數具備兩個參數:Number 參數和 Character 參數。Number 參數指定函數必須返回的字符串的長度。StrDup 函數僅使用 Character 參數中的第一個字符。Character 參數能夠是 Char 數據類型、String 數據類型或 Object 數據類型。 示例: 如下示例使用 StrDup 函數返回由重複字符組成的字符串: Dim aString As String = "Wow! What a string!" Dim aObject As New Object() Dim myString As String aObject = "This is a String that is contained in an Object" myString = StrDup(5, "P") ' Returns "PPPPP" myString = StrDup(10, aString) ' Returns "WWWWWWWWWW" myString = StrDup(6, aObject) ' Returns "TTTTTT" StrReverse StrReverse 函數返回一個字符串,該字符串將指定字符串的字符順序顛倒過來。 示例: Dim myString As String = "ABCDEFG" Dim revString As String ' Returns "GFEDCBA". revString = StrReverse(myString) UCase UCase 函數返回一個字符串或字符,包含已轉換爲大寫的指定字符串。只有小寫字母被轉換爲大寫字母。全部大寫字母和非字母字符均保持不變。 示例: 如下示例使用 UCase 函數返回字符串的大寫形式: Dim LowerCase, UpperCase As String LowerCase = "Hello World 1234" ' String to convert. UpperCase = UCase(LowerCase) ' Returns "HELLO WORLD 1234". 使用 System.String 類中的字符串函數 <script type="text/javascript"></script>如下是 System 命名空間的 String 類中的字符串函數。 注意:要使用字符串函數,請經過在源代碼開始處添加如下代碼將 System.String 命名空間導入到項目中: Imports System.String Compare Compare 函數比較輸入參數中的兩個字符串。經過使用單詞排序規則來執行比較。發現不相等狀況或比較完兩個字符串後,比較將終止。 Compare 示例: ' Code is not compiled unless it is put in a Sub or in a Function. Dim s1, s2 As String s1 = "testexample" s2 = "testex" MsgBox(Compare(s2, s1)) 'Returns -1. MsgBox(Compare(s1, s2)) 'Returns 1.Concat Concat 函數將一個或多個字符串相鏈接,而後返回鏈接後的字符串。 Concat 示例: 如下示例顯示瞭如何使用 Concat 的重載版本: ' Code is not compiled unless it is put in a Sub or in a Function. Dim s1, s2, sa(3) As String sa(0) = "A" sa(1) = "B" sa(2) = "C" s1 = "test" s2 = "example" s1 = Concat(s1, s2) 'Returns testexample. MsgBox(s1) MsgBox(Concat(sa)) 'Returns ABC.Copy Copy 函數將指定字符串中的值複製到另外一個字符串中。 Copy 示例: ' Code is not compiled unless it is put in a Sub or in a Function. Dim s1, s2 As String s1 = "Hello World" 'Copy the string s1 to s2. s2 = Copy(s1) MsgBox(s2) 'Displays Hello World.Remove Remove 函數從指定字符串的指定位置開始刪除指定數目的字符。Remove 函數有兩個參數。分別是 StartIndex 參數和 Count 參數。Startindex 參數指定開始刪除字符的字符串位置。Count 參數指定要刪除的字符數。 Remove 示例: ' Code is not compiled unless it is put in a Sub or in a Function. Dim s1, s2 As String s1 = "Hello World" 'Removes 3 characters starting from character e. s2 = s1.Remove(1, 3) MsgBox(s2) 'Displays Hello World. Substring Substring 函數從指定字符串的指定位置開始檢索字符串。 Substring 示例: 如下示例將從指定的字符位置開始並按指定的長度來檢索子字符串: ' Code is not compiled unless it is put in a Sub or in a Function. Dim s1, s2 As String s1 = "Hello World" s2 = s1.Substring(6, 5) 'Returns World. MsgBox(s2)ToCharArray ToCharArray 函數將字符串中的字符複製到 Unicode 字符數組中。 ToCharArray 示例: 如下示例將指定位置中的字符複製到 Character 數組中: ' Code is not compiled unless it is put in a Sub or in a Function. Dim s1 As String Dim ch(10) As Char s1 = "Hello World" 'Copies the characters starting from W to d to a Character array. ch = s1.ToCharArray(6, 5) MsgBox(ch(3)) 'Displays l.ToLower ToLower 函數採用一個字符串做爲參數,而後以小寫形式返回該字符串的副本。 ToLower 示例: ' Code is not compiled unless it is put in a Sub or in a Function. Dim s1, s2 As String s1 = "Hello World" s2 = s1.ToLower() 'Converts any uppercase characters to lowercase. MsgBox(s2) 'Displays hello world.ToUpper ToUpper 函數採用一個字符串做爲參數,而後以大寫形式返回該字符串的副本。 ToUpper 示例: ' Code is not compiled unless it is put in a Sub or in a Function. Dim s1, s2 As String s1 = "Hello World" s2 = s1.ToUpper() 'Converts any lowercase characters to uppercase. MsgBox(s2) 'Displays HELLO WORLD.Trim、TrimStart 和 TrimEnd 這些函數會返回一個包含指定字符串的副本的字符串。使用 Trim 函數時,既沒有起始空格也沒有尾隨空格。使用 TrimStart 函數時,沒有起始空格。使用 TrimEnd 函數時,沒有尾隨空格。 示例: 如下示例使用 TrimStart 函數刪除字符串變量開始處的空格,使用 TrimEnd 函數刪除字符串變量末尾的空格,以及使用 Trim 函數刪除字符串變量中的起始空格和尾隨空格: ' Code is not compiled unless it is put in a Sub or in a Function. Dim s1, s2 As String s1 = " Hello World " s2 = s1.Trim() 'Returns Hello World without any white spaces. s2 = s1.TrimStart 'Removes the spaces at the start. s2 = s1.TrimEnd 'Removes the white spaces at the end. ==================================================(完)
    相關文章
    相關標籤/搜索