Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
При переходе в следующую строку ссылка должна оставаться на том же месте
 
Здравствуйте! Мне необходимо написать макрос для статистической обработки данных.  При этом ссылки должны быть относительными, так как запускать его придется в разных местах в таблице. Мне потребовалось ввести цикл типа «do until _ loop», для того чтобы (см картинку) вычисление в третьем столбце продолжалось, пока следующая строка в первом столбце не будет пустой. При этом в формуле есть переменная Xi, которая берется из первого столбца и при выполнении тела цикла каждый раз спускается на один, как и должно быть, а есть Xn, которое должно оставаться неизменным, то есть я хочу, чтобы адрес остался относительным, поэтому не могу ввести фиксированный адрес этой ячейки, но если этого не сделать при второй операции в цикле он уже переходит на следующую строку. Я попыталась решить эту проблему заменой в адресе значения -1 как показано в исходном коде на Z и добавить в тело увеличение z по модулю на 1 (см исправленный код). Однако Excel  выдает ошибку 1004 и прекращает выполнение макроса. В чем может быть ошибка? Может это как-то иначе записывается? Впервые пытаюсь программировать, поэтому возможно не понимаю очевидного.
Первоначальный цикл
Код
Sub Цикл3()
'
' Цикл3 Макрос
'
' Сочетание клавиш: Ctrl+с
' Начало с ячейки Xi #1
    ActiveCell.Offset(0, 2).Range("A1").Select
    ActiveCell.FormulaR1C1 = "=(RC[-1]-RC[-2])^2"
    Do While ActiveCell.Offset(1, -2) <> ""
    ActiveCell.Offset(1, 0).Range("A1").Select
    ActiveCell.FormulaR1C1 = "=(R[-1]C[-1]-RC[-2])^2"
    Loop
End Sub
Измененный цикл
Код
Sub Цикл3()
'
' Цикл3 Макрос
'
' Сочетание клавиш: Ctrl+с
' Начало с ячейки Xi #1
Dim z As Integer
z = 0
    ActiveCell.Offset(0, 2).Range("A1").Select
    ActiveCell.FormulaR1C1 = "=(RC[-1]-RC[-2])^2"
    Do While ActiveCell.Offset(1, -2) <> ""
    ActiveCell.Offset(1, 0).Range("A1").Select
    ActiveCell.FormulaR1C1 = "=(R[-1]C[-1]-R[z]C[-2])^2"
    z = z - 1
    Loop
End Sub
Страницы: 1
Наверх