刚开始用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
谁能告诉我哪里错了?我将非常感激。
最佳答案
如果您在第 32767 行之前找不到值 koniec
,则您的变量 wiersz
将达到最大值。如果您想继续下去,您应该将其重新定义为 Long。
您还应该为循环提供一个导出,例如存在于最后使用的行中。我通常使用以下代码,而不是 do ... Loop
:
Dim lLastRow As Long, lWiersz As Long
lLastRow = Cells(Rows.Count, kolumna).End(xlUp).Row
For lWiersz= 1 To lLastRow
Next lWiersz
关于Excel VBA : Overflow error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20339067/