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

N. *_*von 2 excel vba excel-vba

我希望一个范围内的每个单元格的值乘以一个特定的值(比方说4/7).我有这个代码,但我收到了"类型不匹配错误".

Range("B1:B4").Value = Range("B1:B4").Value * 4 / 7
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

Sco*_*ner 7

这将立即完成整个过程:

Range("B1:B4").Value = ActiveSheet.Evaluate("INDEX(B1:B4 * 4 / 7,)")
Run Code Online (Sandbox Code Playgroud)

之前:

在此输入图像描述

后:

在此输入图像描述

只是为了表明.我跑了这个:

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
Run Code Online (Sandbox Code Playgroud)

用单元格的行号填充整个列B,然后进行所需的数学运算.

整个100万行需要2秒钟.

在此输入图像描述