String 字符串操作VBA Excel

String 字符串操作VBA Excel,string,vba,excel,String,Vba,Excel,我可能起得太晚了,但我不知道如何进行基本的字符串操作 我试图在单击复选框后获得一个文本框,在标签上添加值,然后在取消选中复选框时删除该字符串,无论该字符串在文本框中的什么位置。我在添加标签后将其清除,以便用户不能重复添加字符串 所以,在尝试了一些不同的事情之后,我仍然无法理解这一点。此版本的默认字符串为“”。我试着将值反弹,但结果仍然无效 任何指示都很好,谢谢 Private Sub CheckBox1_Click() Dim chxbox1cmt As String Dim T

我可能起得太晚了,但我不知道如何进行基本的字符串操作

我试图在单击复选框后获得一个文本框,在标签上添加值,然后在取消选中复选框时删除该字符串,无论该字符串在文本框中的什么位置。我在添加标签后将其清除,以便用户不能重复添加字符串

所以,在尝试了一些不同的事情之后,我仍然无法理解这一点。此版本的默认字符串为“”。我试着将值反弹,但结果仍然无效

任何指示都很好,谢谢

Private Sub CheckBox1_Click()
    Dim chxbox1cmt As String
    Dim TxtString As String
    Dim myString As String
    chxbox1cmt = Label1.Caption

    If CheckBox1.Value = True Then
        myString = chxbox1cmt
        TxtString = TxtString + myString
        TextBox1.Value = TxtString
        myString = Left(InStr(TxtString, Len(myString)), Len(myString))
        Label1.Caption = vbNullString
    End If

    If CheckBox1.Value = False Then
        TxtString = TxtString - Left(InStr(myString, myString), myString)
        TextBox1.Value = TxtString
    End If
End Sub

如果我理解正确,您需要将
TxtString
移动到模块级别。您当前将其声明为局部变量,因此在它离开作用域后(在
End Sub
处),您在其中输入的任何值都会消失


如果我理解正确,您需要将
TxtString
移动到模块级别。您当前将其声明为局部变量,因此在它离开作用域后(在
End Sub
处),您在其中输入的任何值都会消失


啊,啊,啊,啊,该死,这对我来说是一个很大的疏忽。忘了在潜水艇结束时清理variabel了。Thanksaaaaahhhh该死,这对我来说是一个很大的疏忽。忘了在潜水艇结束时清理variabel了。谢谢
Private TxtString As String

Private Sub CheckBox1_Click()
    Dim chxbox1cmt As String
    Dim myString As String
    chxbox1cmt = Label1.Caption

    If CheckBox1.Value = True Then
        myString = chxbox1cmt
        TxtString = TxtString + myString
        TextBox1.Value = TxtString
        myString = Left$(InStr(TxtString, Len(myString)), Len(myString))
        Label1.Caption = vbNullString
    Else
        TxtString = TxtString - Left$(InStr(myString, myString), myString)
        TextBox1.Value = TxtString
    End If
End Sub