Ошибка 6 переполнения среды выполнения, показанная после второго ввода числа

#visual-studio #vb6

#visual-studio #vb6

Вопрос:

Я сталкиваюсь с этой ошибкой в моей программе сканирования, где она сканирует серийный номер и проверяет 5 цифр из позиции 12 на наличие запущенных номеров. Однако, когда число в позиции 12 равно 9, это показывает ошибку времени выполнения. Я не уверен, что является причиной этого. Я надеюсь, что кто-нибудь может помочь. Спасибо. Ошибка возникает, когда я сканирую номер, например Z121564182690072 C, он примет затем ввод, но когда я сканирую второй ввод, Z121564182690073 C, он покажет ошибку. Я полагаю, что проблема возникает из-за этого кода.

   Case -1 'Scanned UUT is 1 more than a number in the list
                    'if sample size is more than half of the lot size then skip checking
                    If (CLng(Me.lblRequiredQty.Caption) / CLng(Me.txtLotQty.Text)) < (2 / 3) Then

                        If CLng(Me.lblRequiredQty.Caption) > 10 Then

                            If i < Me.lstUnit.ListCount - 1 Then
                                If CLng(CLng(Mid(Me.lstUnit.List(i   1), 12, 5)) - CLng(Mid(Me.lstUnit.List(i), 12, 5))) = 1 Then
                                    Me.lstUnit.Selected(i) = True
                                    A = MsgBox("This unit serial number is in sequence with " amp; _
                                        Me.lstUnit.List(i) amp; " and " amp; Me.lstUnit.List(i   1) amp; "!", vbExclamation, "Error!!!")
  

Комментарии:

1. Вы должны включить свой полный код этого подраздела и указать, в какой строке произошла ошибка. Из этого частичного кода я чувствую, что есть лучший способ достичь вашей цели с помощью более простой логики. Также уточните, является ли это VBA (в продуктах office) или Visual Studio (здесь это маловероятно).

2. Привет, большое спасибо за ответ. Я могу включить полный код. Я запускаю его с Visual Studio, поскольку это тот, который у меня есть прямо сейчас. Но мне сказали, что это было скомпилировано с Visual Basic 2008 Express Edition. Я могу предоставить полный код.

3. Я только что узнал, что помимо «9», символ «R» в 12-й позиции также показывает эту ошибку: (

4. последовательность и i объявляются как целые числа. Измените их на длинные. например Dim i as long, sequence as long

5. В дополнение к объявлению переменных как Long , число, начинающееся с позиции 12, равно ‘90072’, которое CInt не удастся преобразовать. Попробуйте использовать CLng вместо этого.