目前我正在運行VBA從1號工作表對每個副本從一個工作表中的每一行找到另一個工作表中的下一個空閒線粘貼兩次行並添加單元格新創建的線。 我的問題是,我有大約25K線使整個過程需要年齡在運行此,誰能幫我優化我試圖不復制粘貼宏,但我不能使它發揮作用。 由於提前性能下降宏對工作表之間複製線
`Sub eeeee()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Dim ws1 As Worksheet, ws2 As Worksheet
Dim i As Integer, k As Integer
Dim ws1LR As Long, ws2LR As Long
Set ws1 = Sheets("Bearbejdning")
Set ws2 = Sheets("Bearbejdet")
ws1LR = ws1.Range("B" & Rows.Count).End(xlUp).Row + 1
ws2LR = ws2.Range("B" & Rows.Count).End(xlUp).Row + 1
i = 2
k = ws2LR
Do Until i = ws1LR
With ws1
.Range(.Cells(i, 1), .Cells(i, "AN")).Copy
End With
With ws2
.Cells(k, 1).PasteSpecial
.Cells(k, 1).Offset(1, 0).PasteSpecial
End With
ws2.Cells(k, "AP").Value = ws1.Cells(i, "BY").Value
ws2.Cells(k + 1, "AP").Value = ws1.Cells(i, "BZ").Value
ws2.Cells(k, "AQ").Value = ws1.Cells(i, "AI").Value
ws2.Cells(k + 1, "AQ").Value = ws1.Cells(i, "AJ").Value
k = k + 2
i = i + 1
Loop
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub`
是*的'.PasteSpecial'必要的'xlPasteAll' * <用於xlPasteType參數默認值>或可以將它轉移到'xlPasteValues'像數據傳輸的其餘部分?我看到使用轉置陣列的最大改進,但不會帶來單元格格式。順便說一句,把'在同一時間'Application.ScreenUpdating'會有所幫助,尤其如此,如果您的工作簿/工作表活動的宏Application.EnableEvents'關閉。請記得在退出「Sub」之前將其重新打開。 – Jeeped 2014-11-06 13:48:01
感謝您的回覆。我將數組視爲解決方案,並且我不需要複製單元格格式。問題是,我與創建具有相同的功能,我目前使用的一個宏掙扎,而使用 – user3675573 2014-11-06 13:52:57