2016-10-03 58 views
-1

我需要在140K行的範圍內運行循環。我不斷收到溢出錯誤。我試着在3000行的範圍內運行腳本,它工作。我嘗試了一些東西來節約資源,但似乎沒有任何工作。有沒有可以使用的最大範圍?是否有任何提示在這個範圍內運行循環?我需要在140,000行的範圍內運行循環

代碼應該做的例子: 第6列:(1,1,1,1,1,2,2,2,3,3,3,3,3,4,4,6,6, 6,6,6,6,6,6,6) -----> myarray1 =(1,2,3,4,6) 柱1具有值的所有到行140000

Sub transferCC() 

Dim i As Integer, counter1 As Integer 
Dim x As String, y As String 

Dim myarray1() As String 
Dim ws As Worksheet, ws1 As Worksheet, ws2 As Worksheet 
Set ws = Sheets("Master") 
Set ws1 = Sheets("CC List") 

i = 2 
counter1 = 0 
x = "06331" 

'save the unique CC values into myarray1 
Do Until ws.Cells(i, 1) = "" 
     x = ws.Cells(i, 6) 
     y = ws.Cells(i + 1, 6) 'run-time error '6': overflow 
      If x <> y Then 
       ReDim Preserve myarray1(counter1) 
       myarray1(counter1) = x 
       Debug.Print myarray1(counter1) 
       counter1 = counter1 + 1 
      End If 
i = i + 1 
Loop 


End Sub 
的方式
+1

什麼是您收到的確切錯誤消息,以及哪條線路正在拋出該錯誤?此外,你使用的是什麼版本的VB? –

+1

我沒有看到增加'i'的位置,這會產生一個無限循環。 –

+0

對不起,我在那裏增加了,但是當excel凍結它回到最後保存的副本。在發佈之前,我應該多做一點QC。 –

回答

0

我想通了。它與y變量無關。 它在第32767行停止,因爲那將是我的價值,我把它變暗爲int而不是long。 我做了一點debug.print工作,最終在谷歌搜索32767,發現int變量只能去32767

謝謝大家嘗試!