excel 如何解释应用,计算

nfg76nw0  于 2023-11-20  发布在  其他
关注(0)|答案(1)|浏览(256)

我正在查看一些示例,偶然发现了下面的代码示例。我不完全理解这是做什么的,以及为什么它以这种方式实现。运行代码并没有向我解释这是如何影响宏或Excel计算的。这里的任何人都可以向我解释Application.Calculation属性是做什么的,以及下面的代码如何影响宏迭代中的Excel计算?

  1. Sub example()
  2. Dim CalculationMode As Integer
  3. CalculationMode = Application.Calculation
  4. Application.Calculation = xlCalculationManual
  5. Do While
  6. 'Generic Do While statement
  7. Loop
  8. Application.Calculation = CalculationMode
  9. End Sub

字符串

b4qexyjb

b4qexyjb1#

密码:
1.存储计算设置:CalculationMode = Application.Calculation
1.将计算转为手动:Application.Calculation = xlCalculationManual
1.迭代并做它的事情。
1.恢复原始计算设置。Application.Calculation = CalculationMode
下面是一个可测试的例子,说明公式在Application.Calculation = xlCalculationManual之后是否会更新:
在新的空白表格中,在单元格A1中输入公式=B1,在B1中输入数字5。
可测试代码:

  1. Sub whatever()
  2. Dim i As Long
  3. i = 1
  4. Dim arr(1 To 3) As Long
  5. arr(1) = 1
  6. arr(2) = 2
  7. arr(3) = 3
  8. Application.Calculation = xlCalculationManual
  9. Do While i <= 3
  10. Range("B1").Value = arr(i)
  11. Debug.Print Range("A1").Value
  12. i = i + 1
  13. Loop
  14. Application.Calculation = xlCalculationAutomatic
  15. End Sub

字符串
即时窗口中的输出为:

  1. 5
  2. 5
  3. 5


  1. 1
  2. 2
  3. 3


然而,反例可以如下:

  1. Dim arr(1 To 3) As String
  2. arr(1) = "=1"
  3. arr(2) = "=2"
  4. arr(3) = "=3"
  5. Application.Calculation = xlCalculationManual
  6. Do While i <= 3
  7. Range("A1").Formula = arr(i)
  8. Debug.Print Range("A1").Value
  9. i = i + 1
  10. Loop


其中,即时窗口返回:

  1. 1
  2. 2
  3. 3


即,新输入的公式已经被计算。

展开查看全部

相关问题