Ошибка времени выполнения 13, когда флажок не установлен - PullRequest
0 голосов
/ 25 мая 2019

У меня есть простое приложение VBA Macro.

Три флажка, каждый с соответствующим списком рядом с ними. В выпадающих списках содержатся числовые значения от 0 до 4, и они включаются только при нажатии на соответствующий флажок.

Я получаю run time error 13, type mismatch. Я использовал выражение if в своем коде.

Я пытался использовать метод if elseif, но ничего не происходит.

Private Sub cmdSave_Click()
    Dim wks As Worksheet Dim AddNew As Range
    Set wks = Sheet1 Set AddNew = wks.Range("A65356").End(xlUp).Offset(1,0)
    If chkApple.Enabled = True Then
        AddNew.Offset(0, 0).Value = 20 * cmbApple.Value
    End If
    If chkBanana.Enabled = True Then
        AddNew.Offset(0, 1).Value = 10 * cmbBanana.Value
    End If
    If chkPeers.Enabled = True Then
        AddNew.Offset(0, 2).Value = 30 * cmbPeers.Value
    End If
End Sub

Run Time Error 13
Type Mismatch

enter image description here

1 Ответ

1 голос
/ 25 мая 2019

Я не думаю, что вы должны использовать свойство Enabled, чтобы попытаться определить, установлен ли флажок. Они включены всякий раз, когда вам разрешено их изменять (что, вероятно, должно быть все время в вашем сценарии).

Так как ваш всегда включен, он запускает строку:

 AddNew.Offset(0, 2).Value = 30 * cmbPeers.Value

и, поскольку cmbPeers пусто, оно справедливо жалуется на выражение.

Если флажок установлен, его свойство value будет иметь значение true. Так что вместо:

If chkApple.Enabled = True Then

у вас должно быть:

If chkApple.Value Then
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...