如何获取列中的所有值并更改它们的值

How do I take all values in a column and change their values

有很多关于如何将所有值乘以其他单元格或根据某个值将所有值移动到另一个单元格的问题,但我想要的是采取,在下面的示例图像中:

我选择的所有值并除以 2。我不想要另一列,我只想更改价差 sheet 中的所有这些值并将它们除以 2,这些值本身应该改变。

我还没有在任何地方找到这个问题的答案,我确信它非常简单。例如,在:

base_damage_mod 选中列,0.03 将变为:0.015.

我知道的唯一方法是手动执行此操作,这需要大量工作...

最简单的方法是什么?

如果 C 列为空(如果不是,请临时插入一列),在每个使用的 D 列项目 (*) 旁边输入一个 2。 使用操作>除法将所有 C 列和“选择性粘贴”复制到 D 列。

(*) 如果有太多项目无法手动执行“2”,请将此公式复制到 C =IF(ISBLANK(D1),"",2) 列下,它会添加它们。在此之后,通过复制并使用“粘贴值”将其粘贴回来,将 C 列从公式转换为值。 (特殊操作不适用于公式)

最简单的方法是编写宏,如下例所示:

Sub Divide_by_2()
  For Each c In Selection:
    If c <> "" Then
      c.Value = c.Value / 2
    End If
  Next c
End Sub

为了启动它,您需要 select 您的单元格(无需复制,或按 Ctrl+C),然后启动宏。

就源代码而言,这很明显,除了 c <> "" 部分:我添加这个是为了避免在空单元格中填充值 0。

有没有不用 VBA、不用宏的方法?
是的,有,但它涉及到你创建一个新列,在其中键入一个公式,然后将该公式的值再次复制到另一列并删除前两列,换句话说:这很梅西 :-)