VBA 执行多个公式并仅显示最终结果

VBA 执行多个公式并仅显示最终结果

我有一个代码,但我不想在 excel 表中显示中间值。下面是示例,我只想要最后一个单元格 AM12,而不想在 excel 中打印中间结果。如何在 VBA 中执行此操作,有什么方法可以做到吗?

 Range("AG3").Select
    ActiveCell.FormulaR1C1 = "=(RC[-28]/R[-1]C[-28])*100"
    Range("AG3").Select
    Selection.AutoFill Destination:=Range("AG3:AG7204")
    Range("AG3:AG7204").Select
    Range("AH3").Select
    ActiveCell.FormulaR1C1 = "=RC[-1]-100"
    Range("AH3").Select
    Selection.AutoFill Destination:=Range("AH3:AH7204")
    Range("AH3:AH7204").Select
    Range("AI3").Select
    ActiveCell.FormulaR1C1 = "=RC[-1]*(2/35)"
    Range("AI4").Select
    ActiveCell.FormulaR1C1 = "=((RC[-1]-R[-1]C)*(2/35))+R[-1]C"
    Range("AI4").Select
    Selection.AutoFill Destination:=Range("AI4:AI7204")
    Range("AI4:AI7204").Select
    Range("AJ3").Select
    ActiveCell.FormulaR1C1 = "=RC[-1]*10"
    Range("AJ3").Select
    Selection.AutoFill Destination:=Range("AJ3:AJ7204")
    Range("AJ3:AJ7204").Select
    Range("AK3").Select
    ActiveCell.FormulaR1C1 = "=RC[-1]*(2/20)"
    Range("AK4").Select
    ActiveCell.FormulaR1C1 = "=((RC[-1]-R[-1]C)*(2/20))+R[-1]C"
    Range("AK4").Select
    Selection.AutoFill Destination:=Range("AK4:AK7204")
    Range("AK4:AK7204").Select
    Range("AL12").Select
    ActiveCell.FormulaR1C1 = "=AVERAGE(R[-9]C[-1]:RC[-1])"
    Range("AL12").Select
    Selection.AutoFill Destination:=Range("AL12:AL7204")
    Range("AL12:AL7204").Select
    Range("AL13").Select
    ActiveCell.FormulaR1C1 = "=((RC[-1]-R[-1]C)*(2/11))+R[-1]C"
    Range("AL13").Select
    Selection.AutoFill Destination:=Range("AL13:AL7204")
    Range("AL13:AL7204").Select
    Range("AM12").Select
    ActiveCell.FormulaR1C1 = "=RC[-2]-RC[-1]"
    Range("AM12").Select
    Selection.AutoFill Destination:=Range("AM12:AM7204")
    Range("AM12:AM7204").Select

答案1

从已经录制的宏中前进的最佳方法是在末尾添加代码以删除包含中间值的列。

例如,在您的情况下,AH 到 AL 看起来是具有中间值的列。

所以你可以将其添加到宏代码的末尾。

sourceSheet.Columns("AH:AL").EntireColumn.Delete

这样,Excel 将进行必要的计算,然后删除中间值列。

相关内容