Каким образом можно вставить запятые между значениями?
См. вложение.
[вложение удалено администратором]
Вот так можно вставить запятые:
UserForm1.TextBox1.Value = CheckBox1.ControlTipText & ", " & _
CheckBox2.ControlTipText & ", " & _
CheckBox3.ControlTipText
Вместо символа "&" можно использовать "+", но я всегда использую символ "&" для соединения фрагментов в одну строку.
Это известный вариант, его минус заключается в том, что, к примеру, если выбрать только CheckBox "Яблоко", в TextBox1 отобразится следующее: ", , Яблоко", а лишние запятые не допустимы в моем случае.
См. новый пример.
[вложение удалено администратором]
Код:
Private Sub CommandButton1_Click()
Dim myCheckBox As MSForms.CheckBox
Dim strRes As String
Dim i As Long
'Помещение в свойства "ControlTipText" текста.
'Не знаю, зачем это надо - в коде ниже это не используется.
If CheckBox1.Value = True Then CheckBox1.ControlTipText = "Груша"
If CheckBox2.Value = True Then CheckBox2.ControlTipText = "Слива"
If CheckBox3.Value = True Then CheckBox3.ControlTipText = "Яблоко"
'Просмотр всех чекбоксов. У чекбоксов имя должно иметь корень "CheckBox".
For i = 1 To 3 Step 1
'Если стоит флажок.
If Me.Controls("CheckBox" & i).Value = True Then
'Запись в переменную "strRes".
strRes = strRes & Me.Controls("CheckBox" & i).Caption & ", "
End If
Next i
'Удаление с конца заранее вставленной запятой.
'Если ни одного флажка не было, то в переменной "strRes" будет пусто и будет ошибка,
'если попробуем в этом случае использовать команду "Left".
If strRes <> "" Then
strRes = Left(strRes, Len(strRes) - 2)
End If
'Вставка результата в форму.
UserForm1.TextBox1.Value = strRes
'Закрытие и выгрузка формы из оперативной памяти компьютера.
Unload Me
End Sub
В очередной раз я Вам благодарен!