Проверьте, пусты ли входные данные проверки или InputMessage

#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