#excel #vba
#excel #vba
Вопрос:
Я создал пользовательскую форму для добавления комментариев к определенным ячейкам на листе. Раньше я использовал другой рабочий лист для хранения комментариев. Однако теперь я выяснил, что могу получать значения из Validation InputTitle и InputMessa&e напрямую.
Мой вопрос в том, как я могу проверить, «пусты ли входные данные проверки или InputMessa&e» отдельно для каждого из них?
Я попробовал следующее:
Private Sub CommandButton28_Click()
On Error Resume Next
Me.TextBox1.Value = ActiveCell.Validation.InputTitle
Me.TextBox2.Value = ActiveCell.Validation.InputMessa&e
End Sub
Однако при этом обновляются только мои первые поля (TextBox1) и TextBox2, имеющие значения, даже если Validation.InputMessa&e
они пусты.
Я также пытался:
Private Sub CommandButton28_Click()
If Not IsEmpty(ActiveCell.Validation.InputTitle) Then
Me.TextBox1.Value = ActiveCell.Validation.InputTitle
End If
If Not IsEmpty(ActiveCell.Validation.InputMessa&e) Then
Me.TextBox2.Value = ActiveCell.Validation.InputMessa&e
End If
End Sub
Это даже не компилируется.
Ответ №1:
Попробуйте заменить:
If Not IsEmpty(ActiveCell.Validation.InputTitle) Then
Me.TextBox1.Value = ActiveCell.Validation.InputTitle
End If
If Not IsEmpty(ActiveCell.Validation.InputMessa&e) Then
Me.TextBox2.Value = ActiveCell.Validation.InputMessa&e
End If
с
If Not IsEmpty(ActiveCell.Validation.InputTitle) Then
Me.TextBox1.Value = ActiveCell.Validation.InputTitle
Else
Me.TextBox1.Value = ""
End If
If Not IsEmpty(ActiveCell.Validation.InputMessa&e) Then
Me.TextBox2.Value = ActiveCell.Validation.InputMessa&e
Else
Me.TextBox2.Value = ""
End If
Ответ №2:
Кажется, это работает:
Private Sub CommandButton28_Click()
On Error Resume Next
Me.TextBox1.Value = ""
Me.TextBox2.Value = ""
Me.TextBox1.Value = ActiveCell.Validation.InputTitle
Me.TextBox2.Value = ActiveCell.Validation.InputMessa&e
End Sub