如何解决Vba代码因循环导致运行速度太慢的问题?附代码(见问题补充)请高手指点

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For k = 3 To 500
Cells(k, 10) = Cells(k, 6) * Cells(k, 9)
Cells(k, 11).FormulaR1C1 = "=sum(RC[5]:RC[40])"
Cells(k, 54).FormulaR1C1 = "=sum(RC[-1]:RC[-2])"
Cells(k, 12) = Cells(k, 54)
Cells(k, 13).FormulaR1C1 = _
"=IF(RC[-4]=0,""未到货"",IF(RC[-4]>0,IF(RC[-4]-RC[-2]>0,""有入库"",IF(RC[-4]-RC[-2]=0,""无入库"",IF(RC[-4]-RC[-2]<0,""不齐"","""")))))"
Cells(k, 52) = Cells(k, 11)
Cells(k, 14) = Cells(k, 9) - Cells(k, 11)
Cells(k, 55) = Cells(k, 9) - Cells(k, 54)
Cells(k, 57) = Cells(k, 56) - Cells(k, 9)
Cells(k, 61) = Cells(k, 57) + Cells(k, 59) + Cells(k, 60)
Next k
For i = 1 To 320
Cells(i, 1) = Sheets("总表1").Cells(i, 1) '当前表(第i行第1列)的数值等于总表的(第i行第1列)的数值。
Cells(i, 2) = Sheets("总表1").Cells(i, 2) '当前表(第i行第2列)的数值等于总表的(第i行第2列)的数值。
Cells(i, 3) = Sheets("总表1").Cells(i, 3)
Cells(i, 4) = Sheets("总表1").Cells(i, 4)
Cells(i, 5) = Sheets("总表1").Cells(i, 5)
Cells(i, 16) = Sheets("总表1").Cells(i, 16)
Cells(i, 17) = Sheets("总表1").Cells(i, 17)
Cells(i, 18) = Sheets("总表1").Cells(i, 18)
Cells(i, 19) = Sheets("总表1").Cells(i, 19)
Cells(i, 20) = Sheets("总表1").Cells(i, 20)
Cells(i, 21) = Sheets("总表1").Cells(i, 21)
Cells(i, 22) = Sheets("总表1").Cells(i, 22)
Cells(i, 23) = Sheets("总表1").Cells(i, 23)
Cells(i, 24) = Sheets("总表1").Cells(i, 24)
Cells(i, 25) = Sheets("总表1").Cells(i, 25)
Cells(i, 26) = Sheets("总表1").Cells(i, 26)
Cells(i, 27) = Sheets("总表1").Cells(i, 27)
Cells(i, 28) = Sheets("总表1").Cells(i, 28)
Cells(i, 29) = Sheets("总表1").Cells(i, 29)
Cells(i, 30) = Sheets("总表1").Cells(i, 30)
Cells(i, 31) = Sheets("总表1").Cells(i, 31)
Cells(i, 32) = Sheets("总表1").Cells(i, 32)
Cells(i, 33) = Sheets("总表1").Cells(i, 33)
Cells(i, 34) = Sheets("总表1").Cells(i, 34)
Cells(i, 35) = Sheets("总表1").Cells(i, 35)
Cells(i, 36) = Sheets("总表1").Cells(i, 36)
Cells(i, 37) = Sheets("总表1").Cells(i, 37)
Cells(i, 38) = Sheets("总表1").Cells(i, 38)
Cells(i, 39) = Sheets("总表1").Cells(i, 39)
Cells(i, 40) = Sheets("总表1").Cells(i, 40)
Cells(i, 41) = Sheets("总表1").Cells(i, 41)
Cells(i, 42) = Sheets("总表1").Cells(i, 42)
Cells(i, 43) = Sheets("总表1").Cells(i, 43)
Cells(i, 44) = Sheets("总表1").Cells(i, 44)
Cells(i, 45) = Sheets("总表1").Cells(i, 45)
Cells(i, 46) = Sheets("总表1").Cells(i, 46)
Cells(i, 47) = Sheets("总表1").Cells(i, 47)
Cells(i, 48) = Sheets("总表1").Cells(i, 48)
Cells(i, 49) = Sheets("总表1").Cells(i, 49)
Cells(i, 50) = Sheets("总表1").Cells(i, 50)
Cells(i, 51) = Sheets("总表1").Cells(i, 51)
Cells(i, 53) = Sheets("总表1").Cells(i, 53)
Next i
End Sub

第二个循环可能简化
Sheets("总表1").activate
Range(Cells(1, 1), Cells(320, 53)).Select
Selection.Copy
Sheets("要粘贴的表").activate
Cells(1, 1).Select
ActiveSheet.Paste
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答