2014-12-08 183 views
0

如何更快地设置我的循环?真的很慢For循环

我有4列和超过250行,它需要像5分钟循环这样的:从

XML
Application.Calculation = xlCalculationManual 
Call CPU0 

Dim TableA As Range: Set TableA = Range("L_PriceA") 

With TableA 
LongA = TableA.Rows.Count 
    For s = 1 To LongA 
     .Cells(s, 3).Value = "dynamic" 
     .Cells(s, 4).Value = "dynamic" 
     .Cells(s, 5).Value = "dynamic" 
     .Cells(s, 6).Value = "dynamic" 
    Next 
End With 

“动态”将是数据,因为没有人帮我THIS,我不知道:/。还看了一下stackO中的一些循环问题,但没有主要提升。

回答

1

在一个范围内循环很慢。通过将数据移动到Variant数组来避免它,如下所示:

Dim dat As Variant 
Dim s As Long 

With TableA 
    LongA = .Rows.Count 
    dat = .Value ' TableA must be at least 6 columns wide 
    For s = 1 To LongA 
     dat(s, 3) = "dynamic" 
     dat(s, 4) = "dynamic" 
     dat(s, 5) = "dynamic" 
     dat(s, 6) = "dynamic" 
    Next 
    TableA.Value = dat 
End With 
+0

'dat(s,3).Value ='是一个错字。你的意思是'dat(s,3)='对吗? – ja72 2014-12-08 01:53:17

+0

@ ja72你是对的,谢谢 – 2014-12-08 07:48:14

+0

omg 200%更好谢谢verymuch =) – 2014-12-08 22:06:44