2016-04-16 4 views
0

Возможно, я слишком поздно, но я не могу понять, как выполнять основные манипуляции с строкой.Обработка строк VBA Excel

Я пытаюсь получить текстовое поле для добавления формы значения метки после щелчка на флажке, а затем удалить эту строку при снятии флажка, независимо от того, где эта строка находится в текстовом поле. Я очищаю ярлык после добавления его, чтобы пользователь не мог многократно добавлять строку.

Итак, попробовав несколько разных вещей, я все еще не могу понять это. Эта версия расшифровывается, если строка по умолчанию равна «". Я попытался отбросить стоимость, но все равно не работает.

Все указатели было бы хорошо, спасибо

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 

ответ

3

Если я правильно понял вопрос правильно, вы должны переместить TxtString на уровне модуля. В настоящее время он объявлен как локальная переменная, поэтому любое значение, которое вы вставляете в нее, просто уходит после того, как оно покидает область действия (на End Sub).

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 
+0

Aaaaahhhhhh, черт возьми, довольно большой надзор с моей стороны. Забыл об очистке variabel после конца sub. благодаря –

Смежные вопросы