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 'можно обойтись и без использования переменной
Как изменить ActiveCell.FormulaR1C1 = "=SUM(RC[-1]:R[11]C[-1])"
Возможно ли изменить:
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
Или что то в этом роде.
Спасибо.
- если номера строк/столбцов будут определяться программно :
Код:
- если же адрес диапазона известен :
Код:
Ячейка.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
iResult = Application.Sum(.Range(.Cells(1, 2), .Cells(2, 2)))
'и далее работаете с полученным результатом, который может быть
'как числовым значением, так и значением ошибки
'(в случае наличия значений ошибки в суммируем. диапазоне)
End With
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
Код:
With ThisWorkbook.Worksheets("Sup")
.Range("B9").Value = Application.Sum( _
Range("1!F4:F" & .Range("B3").Value - 1))
End With
.Range("B9").Value = Application.Sum( _
Range("1!F4:F" & .Range("B3").Value - 1))
End With
Примечание : Все условия, в т.ч. и имена рабочих листов, взяты из прошлого примера. Единственным исключением является то, что для рабочего листа "Sup" в качестве родителя указана текущая, а не активная рабочая книга.