繁体   English   中英

Excel VBA:溢出错误

[英]Excel VBA: Overflow error

刚开始用 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

谁能告诉我我哪里出错了? 我将不胜感激。

如果你没有找到值koniec 32767行之前,你的变量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

您需要将Dim 对象整数替换为 long

像这样

Dim wiersz As Integer -->>> Dim wiersz As long

Dim licznik As Integer -->>> Dim licznik As long

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM