我希望某個範圍內每個單元格的值乘以特定值(假設爲4/7)。我有這個代碼,但我得到一個「類型不匹配錯誤」。將某個範圍內的每個單元乘以一個值
Range("B1:B4").Value = Range("B1:B4").Value * 4/7
有什麼想法?
我希望某個範圍內每個單元格的值乘以特定值(假設爲4/7)。我有這個代碼,但我得到一個「類型不匹配錯誤」。將某個範圍內的每個單元乘以一個值
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,那麼這是否是必需的數學。
花費了2秒來完成整個100萬行以上。
使用一個循環:
Dim c As Range
For Each c In Range("B1:B4").Cells
c.Value = c.Value * 4/7
Next c
我得到一個編譯錯誤:預期=固定 –
- 我只是編碼Python的一點點前忘了VBA單詞「每個」 –
這會不會是太慢了,如果我有一個非常大的範圍? –
不是我已經注意到了。這將比循環更快。 @ N.Pavon –
每次我在VBA中使用「評估」函數時,如果表達式包含大範圍,實際評估表達式將需要一段時間。我會檢查。 –