Ошибка времени выполнения «13»: Тип Несоответствие
Я пытаюсь создать лист excel, в котором, когда я выбираю опцию выпадающего списка, появляется окно ввода и запрашивает у пользователя ввод числа. Это необходимо для создания «специалиста по планированию» для игры, в которую я играю. Поэтому я использую код
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Select Case Range("A4") Case "Endurance" Call Module1.GetEndurance Case "Active Regeneration" Call Module2.GetActiveRegen End Select End Sub
в этой книге и внутри модуля 1 есть
Sub GetEndurance() Dim QtyEntry As Integer Dim MSG As String Const MinSkill As Integer = 0 Const MaxSkill As Integer = 100 MSG = "Please enter skill level between " & MinSkill & " and " & MaxSkill Do QtyEntry = InputBox(MSG) If IsNumeric(QtyEntry) Then If QtyEntry >= MinSkill And QtyEntry <= MaxSkill Then Exit Do End If MSG = "... Really? I told you the valid options..." MSG = MSG & vbNewLine MSG = MSG & "Please enter skill level between " & MinSkill & " and " & MaxSkill Loop Sheet2.Range("B2").Value = QtyEntry End Sub
Module2 имеет тот же самый код, за исключением того, что он называется GetActiveRegen()
и он переходит к Sheet2.Range("B3").Value = QtyEntry
.
- Ошибка DoCmd.OpenForm
- Как вставить диапазон на другой рабочий лист с фильтрами
- Ошибка: не удалось вставить метод класса рабочей таблицы
- «Определенная заявка или ошибка с определением объекта» - Возможность запуска сценария на некоторых ПК, но не другие
- Цикл VBA выходит из строя вокруг 88-й итерации
Когда я выберу один из этих двух вариантов выпадающего списка, который появляется в окне ввода, и я могу ввести число, оно помещает номер, где он предположим, проблема заключается в том, что он продолжает просить меня ввести число, если я hit cancel Я получаю сообщение об ошибке 13, если я не отвечаю и нажимаю ok, тогда он дает мне сообщение об ошибке 13. Это мой первый раз, когда я занимаюсь программированием в excel VBA, и у меня нет реального опыта программирования, так что это становится очень расстраивающим. Любая помощь будет оценена.
Ошибка отображается в этой строке:
QtyEntry = InputBox(MSG)
- Excel создает новый документ Word с использованием шаблона: ошибка во время выполнения 5981. Метод «Добавить» объекта «Документы» не удалось
- VBA Error Subscript вне диапазона для цикла, используемого для копирования / вставки
- Ошибка времени выполнения 7: нехватка памяти и ускорение кода
- IF ... (AND) ошибка времени выполнения инструкции "13"
- VBA - vlookup работает с ошибкой времени выполнения '13'
- Ошибка выполнения 1004 при вводе формулы в ячейку
- VBA Сохранить как ошибку времени выполнения 1004
- Диапазон автофильтрации в UserForm приводит к преждевременному отключению функции без ошибок
Вы выбрали неверный тип данных для QtyEntry в объявлении. Выберите строку вместо целого.
Sub GetEndurance() Dim QtyEntry As String Dim MSG As String Const MinSkill As Integer = 0 Const MaxSkill As Integer = 100 MSG = "Please enter skill level between " & MinSkill & " and " & MaxSkill Do QtyEntry = InputBox(MSG) If QtyEntry = "" Then Exit Do If IsNumeric(QtyEntry) Then If QtyEntry >= MinSkill And QtyEntry <= MaxSkill Then Exit Do End If MSG = "... Really? I told you the valid options..." MSG = MSG & vbNewLine MSG = MSG & "Please enter skill level between " & MinSkill & " and " & MaxSkill Loop Sheet2.Range("B2").Value = QtyEntry End Sub