将某个范围内的每个单元乘以一个值
我希望一个范围内的每个单元格的值都乘以一个特定的值(比如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