Доброе время суток. Я пытаюсь сделать макрос, который расставляет формулы для определенного массива начиная с последней пустой строки. Т.е. если в массиве будут новые данные, макрос должен суметь протянуть формулы и вставить их как значения. В оригинале это ВПР из огромного массива, формула убивается для экономии ресурсов.
Прошу помощи знатоков: возникает ошибка при выборе последней незаполненной ячейки, а если делать другим способом, то при втором цикле формула для строки 2 попадает в строку 10 (проще говоря она просто съезжает).
Доброе время суток. Я пытаюсь сделать макрос, который расставляет формулы для определенного массива начиная с последней пустой строки. Т.е. если в массиве будут новые данные, макрос должен суметь протянуть формулы и вставить их как значения. В оригинале это ВПР из огромного массива, формула убивается для экономии ресурсов.
Прошу помощи знатоков: возникает ошибка при выборе последней незаполненной ячейки, а если делать другим способом, то при втором цикле формула для строки 2 попадает в строку 10 (проще говоря она просто съезжает).argetlam
argetlam, привет не очень понятно, что вам нужно. Возможно, вот это поможет [vba]
Код
Sub формула_норм() 'диапазон от F2 до последней заполненннй ячейки по ст D With Range("F2:F" & Cells(Rows.Count, 4).End(xlUp).Row) '=D2/E2 .FormulaR1C1 = "=RC[-2]/RC[-1]" 'формулы заменяем значениями .Value = .Value End With End Sub
[/vba]
argetlam, привет не очень понятно, что вам нужно. Возможно, вот это поможет [vba]
Код
Sub формула_норм() 'диапазон от F2 до последней заполненннй ячейки по ст D With Range("F2:F" & Cells(Rows.Count, 4).End(xlUp).Row) '=D2/E2 .FormulaR1C1 = "=RC[-2]/RC[-1]" 'формулы заменяем значениями .Value = .Value End With End Sub
[/vba] работает также, как сочетание ctrl+shift+стрелка вниз. Попробуйте нажать их, выделив ячейку F1 - в Вашем исходном файле выделится не одна ячейка, а весь столбец F, сдвигать вниз его уже некуда, вот ошибка и вылетает.
argetlam, строчка в коде [vba]
Код
wsWS.Range("f1").End(xlDown).Offset(1, 0)
[/vba] работает также, как сочетание ctrl+shift+стрелка вниз. Попробуйте нажать их, выделив ячейку F1 - в Вашем исходном файле выделится не одна ячейка, а весь столбец F, сдвигать вниз его уже некуда, вот ошибка и вылетает.Manyasha
nilem, похоже, но не то, надо чтобы те данные которые один раз посчитал не пересчитывались при повторном запуске макроса. Manyasha, вот это я баран... Спасибо! Стоило заменить Down на UP и range на ("f1000000"), и макрос начал работать как было задумано! Код конечно кривой, но работает))
Соврал, работает, но формула едет, подскажите, как от этого избавиться?
nilem, похоже, но не то, надо чтобы те данные которые один раз посчитал не пересчитывались при повторном запуске макроса. Manyasha, вот это я баран... Спасибо! Стоило заменить Down на UP и range на ("f1000000"), и макрос начал работать как было задумано! Код конечно кривой, но работает))
Соврал, работает, но формула едет, подскажите, как от этого избавиться?argetlam