[转] ACCESS 97 类似 replace 及 split 函數Function replace(ByVal sstr As String, ByVal stag As String, ByVal srep As StringAs String
[转] ACCESS 97 类似 replace 及 split 函數    
Dim l1, l2, l3, x, i As Long
[转] ACCESS 97 类似 replace 及 split 函數    
Dim st As String
[转] ACCESS 97 类似 replace 及 split 函數    x 
= InStr(sstr, stag)
[转] ACCESS 97 类似 replace 及 split 函數    
If x < 1 Then
[转] ACCESS 97 类似 replace 及 split 函數        
replace = sstr
[转] ACCESS 97 类似 replace 及 split 函數        
Exit Function
[转] ACCESS 97 类似 replace 及 split 函數    
End If
[转] ACCESS 97 类似 replace 及 split 函數    st 
= sstr
[转] ACCESS 97 类似 replace 及 split 函數    l1 
= Len(sstr)
[转] ACCESS 97 类似 replace 及 split 函數    l2 
= Len(stag)
[转] ACCESS 97 类似 replace 及 split 函數    l3 
= Len(srep)
[转] ACCESS 97 类似 replace 及 split 函數    
For i = 0 To l1
[转] ACCESS 97 类似 replace 及 split 函數        st 
= Left(st, x - 1& srep & Right(st, Len(st) - x - l2 + 1)
[转] ACCESS 97 类似 replace 及 split 函數        x 
= InStr(x + l3, st, stag)
[转] ACCESS 97 类似 replace 及 split 函數        
If x < 1 Then Exit For
[转] ACCESS 97 类似 replace 及 split 函數    
Next
[转] ACCESS 97 类似 replace 及 split 函數    
replace = st
[转] ACCESS 97 类似 replace 及 split 函數
End Function
[转] ACCESS 97 类似 replace 及 split 函數


[转] ACCESS 97 类似 replace 及 split 函數Function split(ByVal sstr As String, ByVal spstr As StringAs Variant
[转] ACCESS 97 类似 replace 及 split 函數
Dim star, lenstr, lensp, cur As Integer
[转] ACCESS 97 类似 replace 及 split 函數
Dim backstr() As String
[转] ACCESS 97 类似 replace 及 split 函數
Dim i As Integer
[转] ACCESS 97 类似 replace 及 split 函數
ReDim backstr(0)
[转] ACCESS 97 类似 replace 及 split 函數lenstr 
= Len(sstr)
[转] ACCESS 97 类似 replace 及 split 函數lensp 
= Len(spstr)
[转] ACCESS 97 类似 replace 及 split 函數star 
= InStr(sstr, spstr)
[转] ACCESS 97 类似 replace 及 split 函數
If star < 1 Then
[转] ACCESS 97 类似 replace 及 split 函數    backstr(
0= sstr
[转] ACCESS 97 类似 replace 及 split 函數    
split = backstr()
[转] ACCESS 97 类似 replace 及 split 函數    
Exit Function
[转] ACCESS 97 类似 replace 及 split 函數
End If
[转] ACCESS 97 类似 replace 及 split 函數backstr(
0= Left(sstr, star - 1)
[转] ACCESS 97 类似 replace 及 split 函數cur 
= star + lensp
[转] ACCESS 97 类似 replace 及 split 函數
For i = star + lensp To lenstr
[转] ACCESS 97 类似 replace 及 split 函數    star 
= InStr(star + lensp, sstr, spstr)
[转] ACCESS 97 类似 replace 及 split 函數    
If star > 0 Then
[转] ACCESS 97 类似 replace 及 split 函數        
ReDim Preserve backstr(UBound(backstr) + 1)
[转] ACCESS 97 类似 replace 及 split 函數        backstr(
UBound(backstr)) = Mid(sstr, cur, star - cur)
[转] ACCESS 97 类似 replace 及 split 函數        cur 
= star + lensp
[转] ACCESS 97 类似 replace 及 split 函數    
Else
[转] ACCESS 97 类似 replace 及 split 函數        
Exit For
[转] ACCESS 97 类似 replace 及 split 函數    
End If
[转] ACCESS 97 类似 replace 及 split 函數
Next
[转] ACCESS 97 类似 replace 及 split 函數
ReDim Preserve backstr(UBound(backstr) + 1)
[转] ACCESS 97 类似 replace 及 split 函數backstr(
UBound(backstr)) = Mid(sstr, cur, lenstr - cur + 1)
[转] ACCESS 97 类似 replace 及 split 函數
split = backstr()
[转] ACCESS 97 类似 replace 及 split 函數
End Function 
[转] ACCESS 97 类似 replace 及 split 函數

AC97でそれらしい関数を作ってみました。
【関数例】
[转] ACCESS 97 类似 replace 及 split 函數Public Function Replace97(varStrings As Variant, varBeforeChr As Variant, varAfterChr As Variant) As Variant
[转] ACCESS 97 类似 replace 及 split 函數
'----( 変数宣言 )----------------------------------------------
[转] ACCESS 97 类似 replace 及 split 函數
Dim lngX1    As Long
[转] ACCESS 97 类似 replace 及 split 函數
'----( 初期設定 )----------------------------------------------
[转] ACCESS 97 类似 replace 及 split 函數
Replace97 = varStrings
[转] ACCESS 97 类似 replace 及 split 函數
'----( 置換処理 )----------------------------------------------
[转] ACCESS 97 类似 replace 及 split 函數
If IsNull(varStrings) Or varStrings = "" Then
[转] ACCESS 97 类似 replace 及 split 函數
Else
[转] ACCESS 97 类似 replace 及 split 函數  
If IsNull(varBeforeChr) Or varBeforeChr = "" Then
[转] ACCESS 97 类似 replace 及 split 函數  
Else
[转] ACCESS 97 类似 replace 及 split 函數    Replace97 
= ""
[转] ACCESS 97 类似 replace 及 split 函數    
For lngX1 = 1 To Len(varStrings)
[转] ACCESS 97 类似 replace 及 split 函數      
If Mid(varStrings, lngX1, Len(varBeforeChr)) = varBeforeChr Then
[转] ACCESS 97 类似 replace 及 split 函數        Replace97 
= Replace97 & varAfterChr
[转] ACCESS 97 类似 replace 及 split 函數        lngX1 
= lngX1 + Len(varBeforeChr) - 1
[转] ACCESS 97 类似 replace 及 split 函數      
Else
[转] ACCESS 97 类似 replace 及 split 函數        Replace97 
= Replace97 & Mid(varStrings, lngX1, 1)
[转] ACCESS 97 类似 replace 及 split 函數      
End If
[转] ACCESS 97 类似 replace 及 split 函數    
Next lngX1
[转] ACCESS 97 类似 replace 及 split 函數  
End If
[转] ACCESS 97 类似 replace 及 split 函數
End If
[转] ACCESS 97 类似 replace 及 split 函數
End Function

※置換開始位置や置換回数などのパラメータは、考慮していません。
【確認】
[转] ACCESS 97 类似 replace 及 split 函數Public Function TEST()
[转] ACCESS 97 类似 replace 及 split 函數
MsgBox Replace97("ABC""BC""")      → A
[转] ACCESS 97 类似 replace 及 split 函數
MsgBox Replace97("ABCD""BC""")     → AD
[转] ACCESS 97 类似 replace 及 split 函數
MsgBox Replace97("ABCDABCDBC""BC""")  → ADAD
[转] ACCESS 97 类似 replace 及 split 函數
MsgBox Replace97("ABCDABCDBC""BC""XY") → AXYDAXYDXY 
[转] ACCESS 97 类似 replace 及 split 函數
End Function

相关文章:

  • 2022-02-19
  • 2021-11-03
  • 2022-12-23
  • 2021-11-12
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-07-16
  • 2022-12-23
  • 2021-11-15
  • 2021-12-24
  • 2022-12-23
  • 2021-07-22
相关资源
相似解决方案