不能替换,他提问时指定的二个字符串,使用时,又是另外二个字符串,所以不能替换。
提问时,问题没说清楚,要求没说清楚,举例也没说清楚。举例的问题和答案不相符。
所以, ZHRXJR 的回答没错。
---------------------------
程序代码:
Private Sub Command1_Click()
Text2.Text = 删字串中间(Text1.Text, 4, , ",") '该死,你的分隔符竟然是全角的逗号
End Sub
Public Function 删字串中间(S As String, Wz As Long, Optional DelFG As Boolean = True, Optional FG As String = ",") As String
'传入参数: 待处理的字串,删除的部分序号[,是否一并删除分隔符[,分隔符]]
'删除的部分序号,从1开始计数
Dim fj() As String
Dim i As Long
If InStr(1, S, FG) = 0 Then '如果不包含分隔符
删字串中间 = S '返回原串
Exit Function '结束函数
End If
fj = Split(S, FG) '拆散
If Wz >= 1 And Wz <= UBound(fj) + 1 Then '位置在允许范围
fj(Wz - 1) = "" '数组序列从0开始,我们的位置从1开始,所以要修正
End If
If DelFG Then '如果删后面的分隔符
For i = Wz To UBound(fj) '从下一个元素开始循环,到结尾
fj(i - 1) = fj(i) '元素向前移一位
Next i
ReDim Preserve fj(UBound(fj) - 1) '重置数组大小,保存数据
End If
删字串中间 = Join(fj, FG) '连接生成结果
End Function