我有一个VBA宏需要运行一个非常大的Excel文件(大约550,000行)。
我发现宏一次只能运行大约20,000行 - 任何比这更大的行,它会产生溢出'错误。
我现在唯一的解决方案是设置j(行号)= 1到20,000,运行它,然后将j从20,001设置为40,000,运行它,然后将j从40,001设置为60,000等....一路至550,000。
这是一个繁琐的过程,我想知道是否有任何方法可以自动化它,以便我不必再继续改变数字?
代码类似于:
Sub ExposedDays()
Dim j As Integer
Dim k As Integer
Dim l As Integer
Dim result As String
For j = 2 To 10000
k = 1
Do While Len(Worksheets("my8").Cells(j, k)) > 0
k = k + 1
Loop
Worksheets("my8").Cells(j, 131) = Worksheets("my8").Cells(j, k - 6)
Worksheets("my8").Cells(j, 132) = Worksheets("my8").Cells(j, k - 5)
.......
答案 0 :(得分:2)
integer
数据类型仅分配足够的内存来保存整数-32,768到32,767。当你:
dim j as integer
当j超过32,767时,将导致“溢出”错误。要解决此问题,您需要分配更大的数据类型。
Long
数据类型足以容纳整数-2,147,483,648到2,147,483,647。
如果你:
dim j as long
dim k as long
你应该可以避免这个错误。 希望这会有所帮助。