Excel VBA:溢出错误

Dom*_*992 4 excel vba overflow

刚开始在VBA中编程,我有一个问题,我不知道该如何解决。我认为一切都很好。当我想运行此宏时,显示运行时错误“ 6”溢出。

Sub Dzia?aj()
Dim Tablica(1 To 5000) As String
Dim Dni()
Dim kolumna As Integer
Dim wiersz As Integer
Dim licznik As Integer
Dim PF As Boolean
Dim tmp As Integer
Dim i As Integer
Dim tmp2 As String
licznik = 2
tmp = 0
PF = False
kolumna = 22
wiersz = 2
Do
    If Worksheets("Pocz?tkowe").Cells(wiersz, kolumna).Value <> vbNullString Then
        For i = 1 To licznik
            If Worksheets("Pocz?tkowe").Cells(wiersz, kolumna).Value = Tablica(i) Then 'debugger shows problem here i guess
                PF = True
                tmp = i
            End If
        Next i
    End If
    If Worksheets("Pocz?tkowe").Cells(wiersz, kolumna).Value = "koniec" Then
        Exit Do
    End If
    wiersz = wiersz + 1
Loop
End Sub
Run Code Online (Sandbox Code Playgroud)

谁能告诉我我在哪里弄错了?我会很感激。

nut*_*sch 5

如果koniec在第32767行之前找不到该值,则变量wiersz将最大。如果要继续下去,则应将其重新定义为Long。

您还应该为循环提供出口,例如在最后使用的行中存在出口。do ... loop我通常使用以下代码来代替a :

Dim lLastRow As Long, lWiersz As Long

lLastRow = Cells(Rows.Count, kolumna).End(xlUp).Row

For lWiersz= 1 To lLastRow


Next lWiersz
Run Code Online (Sandbox Code Playgroud)