删除单元格中string的重复项

所以,我一直在解决这个问题。 任何时候CheckBox3和CheckBox6都被检查,它复制“ – ”,当我只需要一个。 我试过使用Len和一个数组来通过string来删除重复项,但是对我来说也没有什么技巧。 我可能只是做错了,因为我还是VBA的初学者。 无论如何,这是我的代码:

Private Sub btnOK_Click() Dim strText As String, strDelimiter As String strDelimiter = " " If cbxDD.Value = "DD" Or cbxMM.Value = "MM" Then MsgBox "Please enter both a month and date.", , "Invalid Entry" Exit Sub End If If CheckBox4.Value = True Then strText = strText & "DR" & strDelimiter If CheckBox5.Value = True Then strText = strText & "C" & strDelimiter If CheckBox2.Value = True Then strText = strText If CheckBox1.Value = True Then strText = strText & ChrW(8730) & strDelimiter If CheckBox3.Value = True Then strText = strText & "-" & strDelimiter If CheckBox6.Value = True Then strText = strText & "- CP" & strDelimiter If CheckBox7.Value = True Then strText = strText & "Cancelled" & strDelimiter If CheckBox9.Value = True Then strText = strText & "TS" & strDelimiter If CheckBox8.Value = True Then strText = strText & "Lost" & strDelimiter If Len(strText) > 0 = True Then strText = Left(strText, Len(strText) - Len(strDelimiter)) 'remove trailing delimiter ActiveCell.Value = cbxMM.Value & "/" & cbxDD.Value & " " & txtCode.Value & " " & strText Unload Me Else MsgBox "No Status selected.", , "Invalid Entry" End If If CheckBox2.Value Or CheckBox4.Value Or CheckBox5.Value = True Then ActiveCell.Value = "x" & ActiveCell.Value Else ActiveCell.Value = ActiveCell.Value End If End Sub 

任何帮助将是伟大的! 谢谢。

你可以使用Replace命令来完成你所需要的。 只需添加以下代码:

  strtext = Replace(strtext, "--", "-") 

如果我正确理解代码,也许试试这个(replace两行If Checkbox3.Value ...并且If CheckBox6.Value...用这个:

 If CheckBox6.Value = True and Checkbox3.Value = False Then strText = strText & "- CP" & strDelimiter ElseIf CheckBox3.Value = True and CheckBox6.Value = False Then strText = strText & "-" & strDelimiter ElseIf CheckBox3.Value = True and CheckBox6.Value = True Then strText = strText & "0 CP" & strDelimiter 

或者,实际上,在整个If块之后,尝试

strText = Replace(strText,"--","-")

或者如果它不是两回,只是调整第二个参数,也许它应该是strText = Replace(strText,"- -","-")...strText," - - ","-")