Excel 在VBA中重新计算单元格或范围的不同方法

Excel 在VBA中重新计算单元格或范围的不同方法,excel,vba,excel-formula,Excel,Vba,Excel Formula,第一种方法是在’s中提出的: 第二种方法是在年代: 第三个 Range("XXX").Value = Range("XXX").Value 看起来也很有效 三者之间有什么区别吗 .Calculate:告诉Excel重新计算给定范围内的公式。 我认为这对UDF不起作用,除非使用Application.Volatile .公式:在给定范围内重新保存公式。 类似于单击单元格,然后按enter键而不进行更改。如果范围大于一个单元格,则将失败 .Value:用该值覆盖公式。 与复制/粘贴值类似。如果范围

第一种方法是在’s中提出的:

第二种方法是在年代:

第三个

Range("XXX").Value = Range("XXX").Value
看起来也很有效

三者之间有什么区别吗

  • .Calculate:告诉Excel重新计算给定范围内的公式。 我认为这对UDF不起作用,除非使用Application.Volatile

  • .公式:在给定范围内重新保存公式。 类似于单击单元格,然后按enter键而不进行更改。如果范围大于一个单元格,则将失败

  • .Value:用该值覆盖公式。 与复制/粘贴值类似。如果范围大于一个单元格,则将失败

  • .Calculate:告诉Excel重新计算给定范围内的公式。 我认为这对UDF不起作用,除非使用Application.Volatile

  • .公式:在给定范围内重新保存公式。 类似于单击单元格,然后按enter键而不进行更改。如果范围大于一个单元格,则将失败

  • .Value:用该值覆盖公式。 与复制/粘贴值类似。如果范围大于一个单元格,则将失败


  • 2和3是否强制重新计算范围或单元格?效果有什么不同吗?在两个或三个单元格中,范围不能大于一个单元格,因此范围和单元格是相同的。如果使用3,您将丢失公式,因为它将被值覆盖(不会首先重新计算)。2和3是否强制重新计算范围或单元格?效果有什么不同吗?在两个或三个单元格中,范围不能大于一个单元格,因此范围和单元格是相同的。使用三个,您将丢失公式,因为它将被值覆盖(不会首先重新计算)。
    Cells(RowA,ColB).Formula = Cells(RowA,ColB).Formula
    
    Range("XXX").Value = Range("XXX").Value