我有一个代码,但我不想在 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 将进行必要的计算,然后删除中间值列。