【问题标题】:Excel VBA - Performing function to each cells in rangeExcel VBA - 对范围内的每个单元格执行功能
【发布时间】:2012-02-11 16:40:13
【问题描述】:

假设我有一个名为 rng1 的范围

Set rng1 = Worksheets("Sheet1").Range("A1","A5")

对于 rng1 中的所有单元格,是否有一种快速简便的方法来执行数学函数,比如将所有单元格值除以 2?

感谢任何帮助!

【问题讨论】:

  • 试试:With Worksheets("Sheet1").Range("B1:B5") .Formula = "=A1/2" .Value = .Value End With
  • 或手动或使用 VBA 在您的范围上使用粘贴特殊分隔符

标签: excel range vba


【解决方案1】:

这很容易,但最终代码将取决于您要存储新值的位置。例如,如果您想将除以 2 的值存储在下一列中:

Sub test()

Dim cell As Range

For Each cell In Range("A1:A5")
    cell.Offset(, 1).Value = cell.Value / 2
Next

End Sub

请注意,如果您的范围很大,则有比使用偏移更有效的方法来执行此操作,但对于较小的范围,这是完全可以接受且快速的。

如果你想覆盖这些值,你可以简单地使用cell.Value 代替cell.Offset(,1).Value

【讨论】:

    【解决方案2】:

    另一种方式

    Sub Main()
        [B1:B5] = [INDEX((A1:A5/2),)]
    End Sub
    

    它的工作原理已经很好地解释了here.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 2021-06-28
      • 2015-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多