Vba 循环使用动态公式填充的范围
有人对如何加速这一循环有什么建议吗?我们的文件有9000多行,宏占用的时间太长。在这个范围内,它是否会在每次循环时返回到Vba 循环使用动态公式填充的范围,vba,excel,loops,range,formula,Vba,Excel,Loops,Range,Formula,有人对如何加速这一循环有什么建议吗?我们的文件有9000多行,宏占用的时间太长。在这个范围内,它是否会在每次循环时返回到G1,您有没有建议如何更有效地编写这个范围,同时保持公式的动态性 Dim lrow As Long lrow = 1 For lrow = 1 To lastrow3 Range("g1:g" & lrow).Formula = "=IF(A1=""SC"",(IF(LEN(E1)=3,""SC"",IF(LEN(E1)=4,LEFT(E1,1),LEFT(E1,
G1
,您有没有建议如何更有效地编写这个范围,同时保持公式的动态性
Dim lrow As Long
lrow = 1
For lrow = 1 To lastrow3
Range("g1:g" & lrow).Formula = "=IF(A1=""SC"",(IF(LEN(E1)=3,""SC"",IF(LEN(E1)=4,LEFT(E1,1),LEFT(E1,2)))),""LB"")"
Range("h1:h" & lrow).Formula = "=IF(D1="" "",RIGHT(E1,3),CONCATENATE(RIGHT(E1,3),F1))"
谢谢一起摆脱循环:
Dim lrow as long
lrow = 100
Range("g1:g" & lrow).Formula = "=IF(A1=""SC"",(IF(LEN(E1)=3,""SC"",IF(LEN(E1)=4,LEFT(E1,1),LEFT(E1,2)))),""LB"")"
Range("h1:h" & lrow).Formula = "=IF(D1="" "",RIGHT(E1,3),CONCATENATE(RIGHT(E1,3),F1))"
这将在一个步骤中填充从第1行到第100行的所有CEL,无需循环
通过使用循环,您可以用公式填充一个不断增加的范围。第一个循环执行第1行,第二个循环执行第1行到第2行,依此类推
第1行填充lrow
次。这就是减慢代码速度的原因
任何相对引用(行号之前没有
$
)将自动更新为相对行。一起清除循环:
Dim lrow as long
lrow = 100
Range("g1:g" & lrow).Formula = "=IF(A1=""SC"",(IF(LEN(E1)=3,""SC"",IF(LEN(E1)=4,LEFT(E1,1),LEFT(E1,2)))),""LB"")"
Range("h1:h" & lrow).Formula = "=IF(D1="" "",RIGHT(E1,3),CONCATENATE(RIGHT(E1,3),F1))"
这将在一个步骤中填充从第1行到第100行的所有CEL,无需循环
通过使用循环,您可以用公式填充一个不断增加的范围。第一个循环执行第1行,第二个循环执行第1行到第2行,依此类推
第1行填充lrow
次。这就是减慢代码速度的原因
任何相对引用(行号之前没有
$
)都将自动更新到相对行。不是它将加速代码,而是您的行lrow=1
是100%冗余的。不是它将加速代码,而是您的行lrow=1
是100%冗余的。