Excel VBA:溢出错误

刚开始在VBA编程,我有一个问题,我不知道如何解决这个问题。 我觉得一切都好。 显示运行时错误'6'溢出当我想运行这个macros。

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 

谁能告诉我我犯了什么错误? 我会很感激。

如果在32767行之前没有findwiersz的值,那么你的variableswiersz将会最大。 如果你想继续过去,你应该重新定义它为长。

你也应该为你的循环提供一个退出,例如在最后使用的行上。 而不是一个do ... loop ,我通常使用下面的代码:

 Dim lLastRow As Long, lWiersz As Long lLastRow = Cells(Rows.Count, kolumna).End(xlUp).Row For lWiersz= 1 To lLastRow Next lWiersz