幾個月前,我為我們的專案經理制作了一個模型,用于跟蹤不同專案中的經濟。
該模型的一個愿望是可以選擇在我制作的矩陣中添加額外的行,而不會丟失方案中的公式和小計。通過從這個論壇復制粘貼和編輯公式,我在矩陣的不同點制作了一些按鈕,以便他們可以添加額外的行,一段時間后我讓它按預期作業(我是 VBA 的新手,所以它我花了一點時間來弄清楚如何)。
問題是:它真的很慢!
每當他們按下我的一個按鈕時,大約需要 44 秒才能添加新行并將公式等復制粘貼到新行中。當你必須這樣做時,它可能會煩人 20 倍。
看起來麻煩的是所有的復制粘貼步驟。
所以我想知道我可以讓這個復制粘貼代碼更快嗎?我試過在插入的范圍內進行復制,但我無法使該作業既不復制整行(它還粘貼按鈕,我不希望它這樣做)。
Sub Tilf?j_r?kke()
Dim b As Object, cs As Integer
Set b = ActiveSheet.Shapes(Application.Caller)
With b.TopLeftCell.EntireRow.Offset(1, 0)
.Insert
.Cells(1, 3).Copy .Cells(0, 3)
.Cells(1, 4).Copy .Cells(0, 4)
.Cells(1, 5).Copy .Cells(0, 5)
.Cells(1, 6).Copy .Cells(0, 6)
.Cells(1, 7).Copy .Cells(0, 7)
.Cells(1, 8).Copy .Cells(0, 8)
.Cells(1, 9).Copy .Cells(0, 9)
.Cells(1, 10).Copy .Cells(0, 10)
.Cells(1, 11).Copy .Cells(0, 11)
.Cells(1, 12).Copy .Cells(0, 12)
.Cells(1, 13).Copy .Cells(0, 13)
.Cells(1, 14).Copy .Cells(0, 14)
.Cells(1, 15).Copy .Cells(0, 15)
.Cells(1, 16).Copy .Cells(0, 16)
.Cells(1, 17).Copy .Cells(0, 17)
.Cells(1, 18).Copy .Cells(0, 18)
.Cells(1, 19).Copy .Cells(0, 19)
.Cells(1, 20).Copy .Cells(0, 20)
.Cells(1, 21).Copy .Cells(0, 21)
.Cells(1, 22).Copy .Cells(0, 22)
End With
End Sub
我的矩陣的一部分看起來像這樣,其中綠色按鈕是代碼影像的觸發器
粗體行包含求和函式
我希望你們天才能再次幫助我
uj5u.com熱心網友回復:
有時答案就在你面前,如此簡單而直接,以至于你忽略了它......
幾乎就在我放棄并發布此訊息后,我自己找到了答案,所以如果有人和我一樣遇到同樣的麻煩,答案是:
Sub Tilf?j_r?kke()
Dim b As Object, cs As Integer
Set b = ActiveSheet.Shapes(Application.Caller)
With b.TopLeftCell.EntireRow.Offset(1, 0)
.EntireRow.Copy
.Insert
End With
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/389807.html
