2016-04-29 10 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として

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

非常にうまく動作しますが、プロセスは値を再計算するように見えます。たとえば、最初の試行では3 * 19.25、2回目の試行では3 * 19.25 * 19.25となり、増加し続けます。範囲1をクリアするにはどうすればよいですか? – Rain

+0

私は理解していないと思います。これをループしないでください。一度に全範囲を実行します。ループする場合は、@MattCremeensの答えを使用してください。これは任意のループの後に行くでしょう。 –

+0

問題を解決しても大丈夫です。ありがとうございました。 – Rain

0

もう一つの方法:

B1は、いくつかの未使用のセルと Nであることがあることを起こるものは何でもある
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 

関連する問題