2014-01-20 5 views
1

я буду программировать следующую формулу в VBAVBA формула не работает хорошо

ActiveSheet.Cells(ActiveCell.Row, 1).Select 
ActiveCell.Offset(0, 7).Select 

With ActiveCell 
.formula = "=SUM(" & .Offset(1, 0).Address(0, 0) & ":" & _ 
.End(xlDown).Offset(0, 0).Address(0, 0) & ")" 
End With 

и его вызывает у меня некоторые проблемы, потому что если я запустить макрос один раз он просто занимает 1 строку в формуле: = SUM (H11: H11), но если я запускаю его дважды, он отлично работает, беря в сумме все значения до первой пустой ячейки на листе.

Можете ли вы помочь мне улучшить мой макрос, чтобы он работал правильно с первого запуска?

Благодарим Вас за внимание и заранее

наилучшими пожеланиями, Sergio

ответ

1

Попробуйте это:

With ActiveCell 
    lastrow = Cells(Rows.Count, .Column).End(xlUp).Row 
    .Formula = "=SUM(" & .Offset(1, 0).Address & ":" & Cells(lastrow, .Column).Address & ")" 
End With 
+1

+ 1 Избитый! :-) –

+1

да! Я тоже пробовал это, но дело в том, что он ищет последнюю заполненную ячейку всей рабочей таблицы, которая в моем случае не работает. но спасибо за ваш ответ. хорошо учиться новым вещам каждый день. я никогда не думал, что excel vba - такой мощный инструмент – Ruseiro

1

Это то, что вы пытаетесь?

With ActiveCell 
    .Formula = "=SUM(" & _ 
        .Offset(1, 0).Address & ":" & _ 
        .Offset(1, 0).End(xlDown).Address & _ 
        ")" 
End With 

BTW INTERESTING READ

+0

Спасибо! именно этого я и искал. Итак, для записи было проблемой при оформлении заявлений? – Ruseiro

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