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)
谁能告诉我我在哪里弄错了?我会很感激。
如果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)