[英]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.