我有一个包含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
答案 0 :(得分:5)
32767是VBA中Integer
的最大值。请改用Long
。
Dim FGLOHINT As Long