VB replace 函式用法
今天想用vb中的replace 字串替換函式,發現了一個問題
那就是替換後的字串前部分會被截掉
目的把str中的234換成555
str=111234
find=234
str1=555
st=4
BARCODE = Replace(str, find, str1, st, 1)
結果BARCODE =555
前半部分被截掉
所以只能用left()函式擷取前半部分然後+替換後的字串
'將 A 替換為 x
'新增 Text1 Text2 Command1Dim startc%, rcount%
Private Sub Form_Load()
Text1.Text = "123A456A789aBCDEA"
End Sub
Private Sub Command1_Click()
'********************** 第一種用法 *********************** 無條件全部替換
Text2.Text = Replace(Text1.Text, "A", "x")
'********************** 第二種用法 *********************** 從第一位開始只替換3次
'rcount = 3
'Text2.Text = Replace(Text1.Text, "A", "x", , rcount)
'********************** 第三種用法 *********************** 從前面算起第5位開始全部替換
'startc = 5
'Text2.Text = Left(Text1.Text, startc - 1) & Replace(Text1.Text, "A", "x", startc)
'********************** 第四種用法 *********************** 從前面算起第6位開始替換2次
'startc = 6
'rcount = 2
'Text2.Text = Left(Text1.Text, startc - 1) & Replace(Text1.Text, "A", "x", startc, rcount)
'********************** 第五種用法 *********************** 不分大小寫的替換
'Text2.Text = Replace(Text1.Text, "a", "x", , , vbTextCompare)
End Sub
'******************************************************************************
Replace函式
描述
返回一個字串,該字串中指定的子字串已被替換成另一子字串,並且替換髮生的次數也是指定的。
語法
Replace(expression, find, replacewith[, start[, count[, compare]]])
Replace函式語法有如下幾部分:
部分 描述
expression 必需的。字串表示式,包含要替換的子字串。
find 必需的。要搜尋到的子字串。
replacewith 必需的。用來替換的子字串。
start 可選的。在表示式中子字串搜尋的開始位置。如果忽略,假定從1開始。
count 可選的。子字串進行替換的次數。如果忽略,預設值是 -1,它表明進行所有可能的替換。
compare 可選的。數字值,表示判別子字串時所用的比較方式。關於其值,請參閱“設定值”部分。
設定值
compare引數的設定值如下:
常數 值 描述
vbUseCompareOption -1 使用Option Compare語句的設定值來執行比較。
vbBinaryCompare 0 執行二進位制比較。
vbTextCompare 1 執行文字比較。
vbDatabaseCompare 2 僅用於Microsoft Access。基於您的資料庫的資訊執行比較。
返回值
Replace的返回值如下:
如果 Replace返回值
expression長度為零 零長度字串("")。
expression為Null 一個錯誤。
find長度為零 expression的複本。
replacewith長度為零 expression的複本,其中刪除了所有出現的find 的字串。
start > Len(expression) 長度為零的字串。
count is 0 expression.的複本。
說明
Replace函式的返回值是一個字串,但是,其中從start所指定的位置開始,到expression字串的結尾處的一段子字串已經發生過替換動作。並不是原字串從頭到尾的一個複製。