簡體   English   中英

優化“復制”/“插入復制的單元格”代碼

[英]Optimizing a “Copy” / “Insert Copied Cells” code

我對VBA比較陌生,但被公司“招募”,以幫助制作資源預測工具。 從我運行腳本到完成腳本的時間我有6秒的延遲,如果可能的話,我真的想把它降低到1或2秒。

作為旁注,我可能在我的Excel工作表中有一個荒謬的“IF”,“索引/匹配”和“間接”數字,所有這些都在從K列到EY列的一周結束日期...我'我不確定這是我的問題還是在我的代碼中。

作為一個FYI,這里是一個excel公式的例子 - 如果它似乎超載我應該改變它隨時讓我知道

=IF(INDEX(INDIRECT("$A$3:$M$"&$K$4)),MATCH($B26,INDIRECT("$K$3:$K$"&$K$4)),0),COLUMN(F26))<40000,"InputDate",INDEX(INDIRECT("$A$3:$M$"&$K$4),MATCH($B26,INDIRECT("$K$3:$K$"&$K$4)),0),COLUMN(F26))))

這是我的VBA代碼分三個步驟。
Marco4() - 在項目描述表中插入行,CopyM() - 從項目表創建一個字符串(Client Name,Proj#,Project name)項目摘要() - 復制最后7行的范圍,然后插入它們1排在最后一行之下。

Sub NewProject()

Macro4
CopyM
ProjectSummary

End Sub
----------------------------------------------------------   
Sub Macro4()
'insert a new line in the project description field (top)
Range("A1").End(xlDown).End(xlDown).Offset(1).EntireRow.Insert Shift:=xlDown,      
CopyOrigin:=xlFormatFromLeftOrAbove
Range("G3").Copy Destination:=Range("H1").End(xlDown).End(xlDown)

End Sub
-----------------------------------------------------------
Sub CopyM()
'Copy range of cells in column K which correspond only to project description field

Dim rng As Range
Dim rng2 As Range

Set rng = ActiveSheet.Range("K1").End(xlDown).End(xlDown)
Set rng2 = rng.Offset(1)
rng.Copy Destination:=rng2
Application.CutCopyMode = False

End Sub
------------------------------------------------------------
Sub ProjectSummary()

Dim lastrowe As Integer
Dim lastrowb As Integer
Dim pnext As Integer

lastrowe = Range("D2000").End(xlUp).Offset(2).Row
lastrowb = Range("A2000").End(xlUp).Offset(-1).Row
Rows(lastrowb & ":" & lastrowe).Copy
pnext = Range("D2000").End(xlUp).Offset(3).Row
Rows(pnext).Insert Shift:=xlDown

End Sub 

INDIRECT是一個易失性函數,因此只要工作簿完成,它就會重新計算,即使它的輸入沒有改變。 我建議使用INDEX:= IF(INDEX($ A $ 3:INDEX($ M:$ M,$ K $ 4),MATCH($ B26,$ K $ 3:INDEX($ K:$ K,$ K $ 4) ),0),COLUMN(F2 6))<40000, “InputDate”,INDEX($ A $ 3:INDEX($ M:$ M,$ķ$ 4),MATCH($ B26,$ķ$ 3:INDEX($ K:$ K,$ K $ 4),0),COLUMN(F26))))這是半易失性的,因此只會在工作簿打開或輸入改變時重新計算。 - 羅里5月8日12:41

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM