Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как изменить ActiveCell.FormulaR1C1 = "=SUM(RC[-1]:R[11]C[-1])"

23K
26 июня 2007 года
Слава Лебеденко
11 / / 18.05.2007
Добрый день. Помогите, пожалуйста.
Возможно ли изменить:
ActiveCell.FormulaR1C1 = "=SUM(RC[-1]:R[11]C[-1])"
Range ("B2").Select
на:
ActiveCell.FormulaR1C1 = "=SUM(Sheets ("sup").Cells (1, 2).Value : Sheets ("sup").Cells (2, 2).Value )"
Range (Sheets ("sup").Cells (5, 2).Value).Select
Или что то в этом роде.
Спасибо.
275
26 июня 2007 года
pashulka
985 / / 19.09.2004
Если Вам нужна именно формула, которая будет суммировать данные ячеек неактивного рабочего листа, то :

- если номера строк/столбцов будут определяться программно :

 
Код:
With ThisWorkbook.Worksheets("Sup")
     iFormula = "=SUM(" & _
     .Range(.Cells(1, 2), .Cells(2, 2)).Address(External:=True) & ")"
     'iFormula = "=SUM(" & _
     .Range(.Cells(1, 2), .Cells(2, 2)).Address(False, False, xlA1, True) & ")"
End With

Ячейка.Formula = iFormula 'можно обойтись и без использования переменной


- если же адрес диапазона известен :

 
Код:
Ячейка.Formula = "=SUM(Sup!$B$1:$B$2)" '"=SUM(Sup!B1:B2)"


Если наличие формулы не обязательно, то :

 
Код:
With ThisWorkbook.Worksheets("Sup")
     iResult = Application.Sum(.Range(.Cells(1, 2), .Cells(2, 2)))
     'и далее работаете с полученным результатом, который может быть
     'как числовым значением, так и значением ошибки
     '(в случае наличия значений ошибки в суммируем. диапазоне)
End With
23K
29 июня 2007 года
Слава Лебеденко
11 / / 18.05.2007
Большое спасибо за информацию. Прекрасно работает.
With ThisWorkbook.Worksheets("1")
iResult = Application.Sum(.Range(.Cells(4, 6), .Cells(Sheets("sup").Cells(3, 2).Value - 1, 6)))
Sheets("sup").Cells(9, 2).Value = iResult
End With
275
29 июня 2007 года
pashulka
985 / / 19.09.2004
Вячеслав, Если Вы не собираетесь обрабатывать полученный результат, то можно обойтись и без использования переменной, например :

 
Код:
With ThisWorkbook.Worksheets("Sup")
     .Range("B9").Value = Application.Sum( _
     Range("1!F4:F" & .Range("B3").Value - 1))
End With


Примечание : Все условия, в т.ч. и имена рабочих листов, взяты из прошлого примера. Единственным исключением является то, что для рабочего листа "Sup" в качестве родителя указана текущая, а не активная рабочая книга.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог