我希望范围内每个单元格的值乘以一个特定值(比方说4/7)。我有这个代码,但是我收到了“类型不匹配错误”。
Range("B1:B4").Value = Range("B1:B4").Value * 4 / 7
有什么想法吗?
答案 0 :(得分: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,然后进行所需的数学运算。
花了2秒钟来完成整个100万行。
答案 1 :(得分:3)
使用循环:
Dim c As Range
For Each c In Range("B1:B4").Cells
c.Value = c.Value * 4 / 7
Next c