[英]Copy of normal and array formulas in one macro
我有以下Excel表:
A B C D E
1 Purchase Price Sales Price Purchase Price > Sales Price
2 Product A 50 40 ={COUNT(IF(ISNUMBER(B2:B10),IF(B2:B10>C2:C10-10,B2:B10)))}
3 Product B 60 65
4 Product C 80 60
5 Product D 10 20
6 Product E 50 30
7 =If(A7="";"";60)
現在,我要使用以下宏將公式從單元格B2:D7復制到單元格E2:G7中:
Sub Copy_Option_01 ()
Sheets("Tabelle1").Range("B2:D7").Copy
Sheets("Tabelle1").Range("E2:G7").PasteSpecial xlFormulas
Application.CutCopyMode = False
End Sub
此宏將公式從單元格B2:D7復制到單元格E2:G7。 但是,它也會更改單元格的引用,例如,它將單元格B7和D2中的公式更改為:
B7 =If(D7="";"";60)
D2 ={COUNT(IF(ISNUMBER(E2:E10);IF(E2:E10>F2:F10-10;E2:E10)))}
我想實現該單元格的引用未更改,並且它們按單元格B7和D2中的公式保留不變。 因此,我嘗試使用以下宏代替:
Sub Copy_Option_02 ()
Sheets("Tabelle1").Range("E2:G7").Formula = Sheets("Tabelle1").Range("B2:D7").Formula
End Sub
此宏將公式從單元格B2:D7復制到單元格E2:E7中,並且不更改單元格的引用。 但是,它也不會在單元格D2中復制數組公式的{}。
你們知道我可以使用什么宏嗎
(1)復制的單元格的單元格引用未更改,並且(2)單元格D2中的數組公式的{}也被復制。
謝謝你的幫助。
您將必須更改原始公式以具有絕對列引用。
= COUNT(IF(ISNUMBER($ B2:$ B10),IF($ B2:$ B10> $ C2:$ C10-10,$ B2:$ B10)))
將公式更改為FormulaArray
Sheets("Tabelle1").Range("E2:G7").FormulaArray = Sheets("Tabelle1").Range("B2:D7").Formula
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.