Изменения значения ComboBox - PullRequest
0 голосов
/ 22 ноября 2018
Private Sub Workbook_open()
    With Sheet1.ComboBox1
        .AddItem "Soccer"
        .AddItem "Tennis"
    End With
End Sub

Я хотел бы сделать заявление if таким, что если значение ComboBox1 изменится либо с нуля на футбол / теннис, либо с одного предмета на другой, тогда Range("A1").Value = "This learner Plays Sport"

проблемая не знаю, как выполнить ту часть, в которой значение поля со списком меняется либо с нуля на футбол / теннис, либо с одного предмета на другой

я пробовал workbook.change и выдает ошибку при закрытиився программа

1 Ответ

0 голосов
/ 22 ноября 2018

Вместо события изменения книги попробуйте событие изменения ComboBox, например:

Private Sub ComboBox1_Change()
    If Sheet1.ComboBox1.Value = "Soccer" Or Sheet1.ComboBox1.Value = "Tennis" Then
        Worksheets("Sheet1").Range("A1").Value = "This learner Plays Sport"
    End If
End Sub

Чтобы попасть на это событие изменения, просто дважды щелкните на комбинированном ящике на рабочем листе, и он откроет для вас редактор VBA.

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


Если у вас длинный список видов спорта, я бы предложил использовать Select Case вместоесли заявления.Например:

Private Sub ComboBox1_Change()
    Select Case Sheet1.ComboBox1.Value
        Case "Soccer", "Tennis"
            Worksheets("Sheet1").Range("A1").Value = "This learner Plays Sports"
        Case "Lacross"
            Worksheets("Sheet1").Range("A1").Value = "Something Different"
        Case Else
            Debug.Print "value not in list"
    End Select
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...