2017-02-15 28 views
1

Я должен рассчитать среднее или суммарное или стандартное отклонение или .. из 10 записей в столбце, скажем, D3: D12 и заполнить строку до столбца Z. enter image description hereVBA: горизонтальное и вертикальное перемещение с использованием петель для динамических диапазонов

часть 1: -

Sub hg() 
Dim i As Long 
Range("D13").Select 
Do Until i = 20 
i = i + 1 
ActiveCell.FormulaR1C1 = "=AVERAGE(R[-10]C:R[-1]C)" 
Cells(ActiveCell.Row, ActiveCell.Column + 1).Select 
Loop 
End Sub 

Это я закодированы. Есть ли способ легко перетащить боковые пути?

Мне нужно продолжить это снова в 28-й строке, 43-й строке & так далее с разницей в 15 рядов.

То, что я мог думать о добавляет Часть вторая: -

Sub hg() 
Dim i As Long 
Range("D13").Select 
Do Until i = 20 
i = i + 1 
ActiveCell.FormulaR1C1 = "=AVERAGE(R[-10]C:R[-1]C)" 
Cells(ActiveCell.Row, ActiveCell.Column + 1).Select 
Loop 
Cells(ActiveCell.Row + 15, ActiveCell.Column - 20).Select 
End Sub 

Который направляет к 28-й строке, но не работает, чтобы заполнить вдоль этой строки. Я не могу направить вертикальное движение.

Я не серьезный кодер, но очень заинтересован в том, чтобы учиться. Пожалуйста, помогите заполнить по вертикали.

ответ

1

Вы можете использовать смещения() и цикл шаговый 15 строк на каждой итерации

Sub hg() 
    Dim i As Long`enter code here` 

    For i = 13 To 43 Step 15 '<--| change 43 to your actual last row to populate with formula 
     Range("D1:Z1").Offset(i-1).FormulaR1C1 = "=AVERAGE(R[-10]C:R[-1]C)" 
    Next 
End Sub 
+0

Final кода я успешно использую Sub рт.ст.() Dim я As Long Range ("D13") .Select сделать, пока я = 10 I = I + 1 ActiveCell.FormulaR1C1 = "= СРЗНАЧ (R [-10] C: R [-1] C)" Selection.Copy Диапазон (Выбор, выбор. End (xlToRight)). Выберите Selection.PasteSpecial Paste: = xlPasteFormulas, Operation: = xlNone, _ SkipBlanks: = False, Транспонирование: = False Cells (ActiveCell.Row, ActiveCell.Column + 1) .Select Cells (ActiveCell.Row + 15, 4) .Select Loop End Sub –

+0

Вы тепло рекомендуется избегать избегайте выбора/выбора/шаблона ActiveXXX и используйте полностью квалифицированные ссылки диапазона. Кроме того, копирование/вставка - это дорогостоящая операция: вы можете не воспринимать ее с небольшими данными или операциями, но вы можете захотеть привыкнуть к использованию свойства Value для копирования значений между диапазонами или непосредственного написания формул. Попробуйте мой код и дайте мне знать – user3598756