避免頻繁選擇和激活工作表和單元格,這會降低代碼的執行速度。建議直接引用工作表和單元格。
避免在循環中頻繁復制和粘貼單元格,可以通過直接賦值來提高效率。
盡量減少循環中的文件保存操作,可以將保存操作放在循環之外。
使用數組存儲數據並批量處理數據,而不是逐個單元格地處理數據。
避免在循環中使用Select和Activate方法,這通常是低效的。
在循環之前計算循環次數的上限,以避免無限循環。
根據上述建議,我對您提供的代碼進行了優化,如下所示:
添加數據優化版本()
將ws條目表作為工作表隱藏
將ws fa物流標註為工作表
Dim n壹樣長,m壹樣長
設置ws條目表= ThisWorkbook。工作表(“條目表”)
設置ws logistics = ThisWorkbook。床單(“物流”)
處理輸入表n = 8
Do While ws條目表。單元格(3,14)
如果ws條目表。cells(n,3)=“。
Ws條目表。範圍(ws條目表。單元格(n,3),ws條目表。單元格(n,16)。Value = ws條目表。範圍(“C3:P3”)值。
Ws條目表。單元格(n,2)。值= n-7。
退出Do
其他
n = n + 1
如果…就會結束
環
處理物流表m = 3。
Do While ws條目表。單元格(3,14)
如果ws物流。cells(m,2)=““那麽
ws物流。細胞(m,2)。Value = ws條目表。單元格(3,4)。值。
。範圍(。細胞(m,4)。細胞(m,5))。value = ws條目表。範圍(“E3:F3”)值。
。細胞(m,6)。Value = ws條目表。單元格(3,10)。
。範圍(。細胞(m,7)。細胞(m,8))。value = ws條目表。範圍(“O3:P3”)值。
以…結尾
此工作簿。救援
退出Do
其他
m = m + 1
如果…就會結束
循環結束接頭
請註意,以上代碼僅供優化參考,具體優化方式需要根據具體需求和數據結構進行調整。我希望這些優化可以提高您的VBA代碼的執行效率。