excel - VBA - 如何使用 `With` 语句舍入范围内的值

标签 excel vba with-statement

使用 With 语句,如何更新单元格 Range 中的 .value,作为 Round 函数的结果,该函数会将各个 .value 作为参数。

换句话说,如何写:

Range("A1").Value = Round(Range("A1").Value, 0)
Range("A2").Value = Round(Range("A2").Value, 0)

以这种形式:

With Range("A1:A2")
    .Value = Round(.Value, 0)
End With

我在某处看到过解决方案,但找不到。

最佳答案

Round ,或等效的 VBA.Round,不接受数组作为其第一个参数。

WorksheetFunction.Round 也没有.

使用 Application.Round,它是 WorksheetFunction.Round 的后期绑定(bind)形式。

With Range("A1:A2")
    .Value = Application.Round(.Value, 0)
End With

重要提示:VBA.RoundWorksheetFunction.Round 不执行相同的操作。 VBA.Round 使用银行家舍入,如其 docs 中所述。 。如果您需要银行四舍五入,那么您需要循环,但使用数组会更容易。

关于excel - VBA - 如何使用 `With` 语句舍入范围内的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74364544/

相关文章:

python - 在 Pyspark 中执行类似 Excel 的 "vlookup"方法

excel - 组合两个数组公式

vba - 使用 VBA 获取 OneDrive 上文件夹中的 Excel 文件列表

vba - Lync 2013 for VBA 的通信器 API 去了哪里?

python - 在 Python 中关闭文件

python - `with return .. return` 是无法访问的代码吗?

excel - 当两者在同一工作簿中指定不同的工作表时,我可以将 With 嵌套在 With 中吗?编程语言

java - 如何使用 poi 库获取 Excel 文件中特定列的行数

arrays - 如何将一维数组复制到另一个一维数组和二维数组?

excel - 在Excel中检测 "pure"字母