簡體   English   中英

在一個宏中復制普通和數組公式

[英]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.

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