2016-04-29 5 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 некоторые Неиспользуемая клеток и п является то, что случается.

Смежные вопросы