我有以下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中数组公式的{}也被复制。
感谢您的帮助。
答案 0 :(得分:0)
您必须将原始公式更改为具有绝对列引用。
= 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