Я хочу умножить все значения в пределах диапазона. Я пробовал этот формат, но значения ушли.Умножьте диапазон с константой
Код:
Dim yl1 As Range
Set yl1 = .Range(.Cells(17, 6), .Cells(n + 16, 6))*19.25
Я хочу умножить все значения в пределах диапазона. Я пробовал этот формат, но значения ушли.Умножьте диапазон с константой
Код:
Dim yl1 As Range
Set yl1 = .Range(.Cells(17, 6), .Cells(n + 16, 6))*19.25
Есть, вероятно, и другие способы, многие из них, вероятно, лучше, но одна только петля
For i = 17 to some last row
Cells(i, 6) = Cells(i, 6) * 19.25
Next i
Я нахожу этот способ наиболее интуитивный, хотя.
По ссылке:
Dim yl1 as Range
Set yl1 = .Range(.Cells(17, 6), .Cells(n + 16, 6))
yl1.Value = .Evaluate("INDEX(" & yl1.Address(0,0) & " * 19.25,)")
Он будет делать их все сразу.
он работает очень хорошо, но когда я повторяю обработайте значения, похоже, снова умножьте его на selft, например, он сделает 3 * 19.25 для первой попытки, а затем 3 * 19.25 * 19.25 для второй попытки, и он продолжает увеличиваться. Как я могу очистить диапазон, который он делает, используя его. – Rain
Думаю, я не понимаю. Не зацикливайте это. Он делает весь диапазон за один раз. Если вы хотите использовать цикл, используйте ответ @MattCremeens. Это произойдет после любого цикла. –
Ничего страшного, я не исправлю проблему. Спасибо. – Rain
Другой способ:
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 некоторые Неиспользуемая клеток и п является то, что случается.
Возможный дубликат http://stackoverflow.com/questions/36925222/multiplying-every-cell-within-a-range-by-a-value/36925326#36925326 –