VBA代码挂在第32767行

时间:2018-01-30 14:32:28

标签: excel vba excel-vba

我有一个包含137000多行的电子表格,这意味着我不想在每次移动时重新计算大量的excel公式。因此我创建了一系列宏来为我完成这项工作。直到最近才开始工作,它现在停在第32767行并一直挂起,直到我崩溃。我不明白发生了什么变化。希望你们中的一个聪明的人可以帮助有需要的新手。

这是我的一个潜艇的例子。我想要做的只是一个vlookup,只要它满足一定的要求,直到我达到行限制才能正常工作:

Sub FGLOH()

Dim FGLOHINT As Integer

FGLOHINT = 3

    Sheets("Calculation of Final LOH").Select
    Sheets("Calculation of Final LOH").Range("A" & FGLOHINT).Activate

Do Until IsEmpty(ActiveCell)

    Sheets("Calculation of Final LOH").Select
    Sheets("Calculation of Final LOH").Range("A" & FGLOHINT).Activate

If ActiveCell.Value = ActiveCell.Offset(-1, 0).Value Then
Sheets("Calculation of Final LOH").Range("H" & FGLOHINT).Value = 0

FGLOHINT = FGLOHINT + 1

Else

Dim FGLOH As String
FGLOH = Sheets("Calculation of Final LOH").Range("A" & FGLOHINT).Value

On Error GoTo 0
On Error Resume Next

Sheets("Calculation of Final LOH").Range("H" & FGLOHINT).Value = Application.WorksheetFunction.VLookup(FGLOH, Sheets("Work Centre LOH Lookup").Range("A2:M200000"), 13, False)

FGLOHINT = FGLOHINT + 1

End If

Loop

End Sub

1 个答案:

答案 0 :(得分:5)

32767是VBA中Integer的最大值。请改用Long

Dim FGLOHINT As Long