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

时间:2016-04-28 20:51:45

标签: excel excel-vba vba

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

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

有什么想法吗?

2 个答案:

答案 0 :(得分:7)

这将立即完成整个过程:

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

在:

enter image description here

后:

enter image description here

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

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,然后进行所需的数学运算。

花了2秒钟来完成整个100万行。

enter image description here

答案 1 :(得分:3)

使用循环:

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