我有一张如下表
DATA_DT G_GLACNO_OLD G_GLACCTNO
4/30/2017 1150007000 130134001L01 / L02 / L03 / L50
4/30/2017 1151009000 130150901L01 / L02 / L03 / L50
4/30/2017 1151014026 130154602L01 / L02 / L03 / L50
4/30/2017 1151014027 130154602L01 / L02 / L03 / L50
4/30/2017 1151015003 130154701L01 / L02 / L03 / L50
4/30/2017 1151015004 130154701L01 / L02 / L03 / L50
4/30/2017 1151015006 130154701L01 / L02 / L03 / L50
4/30/2017 1178036000 130974003L01 / L02 / L03 / L30 / L50
4/30/2017 1151015011 130154701L01 / L02 / L03 / L50
4/30/2017 1151015001 130154702L01 / L02 / L03 / L50
4/30/2017 1151015002 130154702L01 / L02 / L03 / L50
我想用特殊字符“/”
分割行所以
4/30/2017 1150007000 130134001L01 / L02 / L03 / L50
我想成为
4/30/2017 1150007000 130134001L02
4/30/2017 1150007000 130134001L03
4/30/2017 1150007000 130134001L50
4/30/2017 1150007000 130134001L01
有快速解决方案吗?
4/30/2017 1150007000 130134001L01 / L02 / L03 / L50
有些行有4个斜杠,有些行有5个斜杠。
答案 0 :(得分:0)
评论中所说的是完全正确的 - 如果这不是代码编写服务等,你应该尝试一下。
然而,就__________________________(在这里放任何随机的东西)而言,我已经决定尝试输入输出:
Option Explicit
Public Sub TestMe()
Debug.Print RemoveSomeSlashed("4/30/2017 1151015004 130154701L01 / L02 / L03 / L50")
Debug.Print RemoveSomeSlashed("4/30/2017 11780 130974003L01 / L02 / L03 / L30 / L50")
End Sub
Public Function RemoveSomeSlashed(myInput As String) As String
Dim cnt As Long
Dim startCnt As Long
Dim endCnt As Long
Dim compare As String
compare = Replace(myInput, "/", "")
endCnt = Len(myInput) - Len(compare) - 2
For cnt = Len(myInput) To 1 Step -1
If Mid(myInput, cnt, 1) = "/" Then
Mid(myInput, cnt, 1) = "?"
startCnt = startCnt + 1
If startCnt = endCnt Then
RemoveSomeSlashed = Replace(myInput, "?", "")
Exit Function
End If
End If
Next cnt
End Function
这不是最好的解决方案,但它确实有效。这个想法是它删除了所有斜杠而不是两个,并且不允许在字符串中使用?
符号。
作为奖励,如果您的文字至少没有3
斜杠,它将显示空字符串:)。