在VBA中使用LastIndexOf()拆分字符串
如何在VBA中通过在VBA中使用LastIndexOf()拆分字符串,vba,excel,Vba,Excel,如何在VBA中通过LastIndexOf()拆分字符串 我有一个字符串,它可以有这样的值 Dim input As String input = "customName_D3" input = "Custom_Name_D3" input = "my_Custom_Name_D3" 类似的,它可以有许多“,但在最后一个“之后,它包含单元格名称 我想将这个字符串拆分为两个不同的字符串,以获取单元格名称和其他还押部分 差不多 cellName = D3 remainingS
LastIndexOf()
拆分字符串
我有一个字符串,它可以有这样的值
Dim input As String
input = "customName_D3"
input = "Custom_Name_D3"
input = "my_Custom_Name_D3"
类似的,它可以有许多“
,但在最后一个“
之后,它包含单元格名称
我想将这个字符串拆分为两个不同的字符串,以获取单元格名称和其他还押部分
差不多
cellName = D3
remainingString = my_custom_Name
请尝试以下代码:
Public Function SplitAtLast(ByVal sText As String, ByVal sMatch As String, ByRef sLeft As String, ByRef sRight As String) As Integer
Dim nIndex As Integer
' Search for sMatch within sText
nIndex = InStrRev(sText, sMatch)
If nIndex > 0 Then ' sMatch was found as nIndex'th character
' Save all chars before sMatch
sLeft = Left$(sText, nIndex - 1)
' Save all chars after sMatch
sRight = Mid$(sText, nIndex + Len(sMatch))
Else ' sMatch was NOT found
' Save all chars into sLeft
sLeft = sText
sRight = ""
End If
' Returns position of found match
SplitAtLast = nIndex
End Function
称为
Dim sInput As String, sLeft As String, sRight As String, nIndex As Integer
sInput = "customName_D3"
nIndex = SplitAtLast(sInput, "_", sLeft, sRight)
MsgBox sInput & " : " & nIndex & ", <" & sLeft & ">, <" & sRight & ">"
sInput = "Custom_Name_D3"
nIndex = SplitAtLast(sInput, "_", sLeft, sRight)
MsgBox sInput & " : " & nIndex & ", <" & sLeft & ">, <" & sRight & ">"
sInput = "my_Custom_Name_D3"
nIndex = SplitAtLast(sInput, "_", sLeft, sRight)
MsgBox sInput & " : " & nIndex & ", <" & sLeft & ">, <" & sRight & ">"
Dim sInput作为字符串,sLeft作为字符串,sRight作为字符串,nIndex作为整数
sInput=“customName\u D3”
nIndex=SplitAtLast(sInput,“,”sLeft,SRRIGHT)
MsgBox sInput&“:”&nIndex&“,”
sInput=“自定义名称”D3
nIndex=SplitAtLast(sInput,“,”sLeft,SRRIGHT)
MsgBox sInput&“:”&nIndex&“,”
sInput=“我的自定义名称”D3
nIndex=SplitAtLast(sInput,“,”sLeft,SRRIGHT)
MsgBox sInput&“:”&nIndex&“,”
问候,,
丹尼尔
Dim sInput As String, sLeft As String, sRight As String, nIndex As Integer
sInput = "customName_D3"
nIndex = SplitAtLast(sInput, "_", sLeft, sRight)
MsgBox sInput & " : " & nIndex & ", <" & sLeft & ">, <" & sRight & ">"
sInput = "Custom_Name_D3"
nIndex = SplitAtLast(sInput, "_", sLeft, sRight)
MsgBox sInput & " : " & nIndex & ", <" & sLeft & ">, <" & sRight & ">"
sInput = "my_Custom_Name_D3"
nIndex = SplitAtLast(sInput, "_", sLeft, sRight)
MsgBox sInput & " : " & nIndex & ", <" & sLeft & ">, <" & sRight & ">"