Ошибка при передаче значения между 2 подпрограммами - PullRequest
1 голос
/ 13 февраля 2020

Я пытаюсь передать String между двумя подпрограммами в VBA, но каждый раз, когда я получаю сообщение об ошибке компиляции

Это мой код

Option Explicit

Private Sub ComboBox1_DropButtonClick()
    Dim value As String
    value = ComboBox1.value
    ComboBox1_Change value
End Sub

Private Sub ComboBox1_Change(ByVal value As String)
    Dim value2 As String
    value2 = value
End Sub

I я получаю сообщение об ошибке ниже

Объявление процедуры не соответствует описанию события или процедуры с тем же именем

Я пытался удалить ByVal но все равно ничего ... Несколько советов?

1 Ответ

2 голосов
/ 13 февраля 2020

Объявление подпрограммы не соответствует описанию события или подпрограммы с тем же именем

Вы получаете ошибку, поскольку ComboBox1_Change не поддерживает передачу аргументов. ComboBox1_Change(ByVal value As String) должно быть ComboBox1_Change()

@ SiddharthRout Потому что я хотел бы получить значение dropButton до того, как оно будет изменено. Поэтому, когда пользователь щелкает по нему, я получаю значение dropButton, затем, когда пользователь меняет его, я получаю новое значение - ChangeWorld 10 минут go

Вам не нужно добавлять глобальную переменную , Объявите переменную с областью для внутри пользовательской формы. Как то так

Option Explicit

Dim oldValue As String
Dim newValue As String

Private Sub ComboBox1_DropButtonClick()
    oldValue = ComboBox1.value
End Sub

Private Sub ComboBox1_Change()
    newValue = ComboBox1.value

    MsgBox oldValue
    MsgBox ComboBox1.value
End Sub
...