将某个范围内的每个单元乘以一个值

我希望一个范围内的每个单元格的值都乘以一个特定的值(比如4/7)。 我有这个代码,但我得到一个“types不匹配错误”。

Range("B1:B4").Value = Range("B1:B4").Value * 4 / 7 

有什么想法吗?

这将立即完成整个工作:

 Range("B1:B4").Value = ActiveSheet.Evaluate("INDEX(B1:B4 * 4 / 7,)") 

之前:

在这里输入图像说明

后:

在这里输入图像说明

只是为了展示。 我跑这个:

 Sub foo() Dim t t = Now() [B:B] = ActiveSheet.Evaluate("INDEX(row(B:B)*1,)") [B:B] = ActiveSheet.Evaluate("INDEX(B:B * 4 / 7,)") Dim x Debug.Print (Now() - t) * 24 * 60 * 60 End Sub 

其中填充单元格的整个列B的行号,然后做math是必需的。

整个一百万行花了2秒钟。

在这里输入图像说明

使用循环:

 Dim c As Range For Each c In Range("B1:B4").Cells c.Value = c.Value * 4 / 7 Next c