簡體   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