2016-04-29 145 views
0

我想將範圍內的所有值乘以一個值。我嘗試了這種格式,但是值變得很差。將常數乘以一個範圍

代碼:

Dim yl1 As Range 

Set yl1 = .Range(.Cells(17, 6), .Cells(n + 16, 6))*19.25 
+2

可能重複http://stackoverflow.com/questions/36925222/multiplying-every-cell-within-a-range-by-a-value/36925326#36925326 –

回答

0

可能有其他的方式,許多人可能會更好,但一個僅僅是一個循環

For i = 17 to some last row 
    Cells(i, 6) = Cells(i, 6) * 19.25 
Next i 

我覺得這種方式最直觀的,雖然。

1

按鏈接:

Dim yl1 as Range 
Set yl1 = .Range(.Cells(17, 6), .Cells(n + 16, 6)) 
yl1.Value = .Evaluate("INDEX(" & yl1.Address(0,0) & " * 19.25,)") 

它會做他們的一次。

+0

它工作得很好,但是當我重複處理這些值似乎會再次增加selft,例如它會在第一次嘗試時執行3 * 19.25,在第二次執行時執行3 * 19.25 * 19.25,並且它會不斷增加。如何清除使用它的範圍之一。 – Rain

+0

我想我不理解。不要循環這個。它一次完成整個範圍。如果你想循環使用@MattCremeens回答。這會在任何循環之後進行。 –

+0

沒關係我解決了這個問題。謝謝。 – Rain

0

另一種方式:

Sub UsingPaste() 
    Range("B1").Value = 0.7 
    Range("B1").Copy 
    n = 10 
    Range(Cells(17, 6), Cells(n + 16, 6)).PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply 
End Sub 

B1是一些未使用的電池和ñ是不管它正好是。