Dim r1 As Range Dim r2 As Range Dim r12 As Range Set r1 = Range("B11:D28") 'Берем первый диапазон Set r2 = Range("B30:D40") 'Берем второй диапазон Set r12 = Application.Union(r1, r2) 'Объединяем их Range("B41").FormulaLocal = "=SUM(" & r12.Columns(1).Address(False, False) & ")" 'Пытаемся получить сумму для первого столбца этого диапазона
[/vba]
В r12 содержится "рваный" диапазон, состоящий из r1 и r2. Когда я вызываю r12.Columns(1) я рассчитываю получить диапазон "B11:B28;B30:B40". Но эта функция возвращает мне "B11:B28". Что делать? Куды бечь? Как получить "B11:B28;B30:B40"? Не хотелось бы делать r12 массивом и в цикле получать нужный адрес.
Например: [vba]
Код
Dim r1 As Range Dim r2 As Range Dim r12 As Range Set r1 = Range("B11:D28") 'Берем первый диапазон Set r2 = Range("B30:D40") 'Берем второй диапазон Set r12 = Application.Union(r1, r2) 'Объединяем их Range("B41").FormulaLocal = "=SUM(" & r12.Columns(1).Address(False, False) & ")" 'Пытаемся получить сумму для первого столбца этого диапазона
[/vba]
В r12 содержится "рваный" диапазон, состоящий из r1 и r2. Когда я вызываю r12.Columns(1) я рассчитываю получить диапазон "B11:B28;B30:B40". Но эта функция возвращает мне "B11:B28". Что делать? Куды бечь? Как получить "B11:B28;B30:B40"? Не хотелось бы делать r12 массивом и в цикле получать нужный адрес.yrHeTaTeJlb
Dim r1 As Range Dim r2 As Range Dim r12 As Range Set r1 = Range("B11:D28") Set r2 = Range("B30:D40") Set r12 = Application.Union(r1, r2) Range("B41").FormulaLocal = "=SUM(" & Replace(Intersect(r12, Columns(r12.Column)).Address(False, False), ",", ";") & ")"
[/vba] В результате в B41 имеем =SUM(B11:B28;B30:B40)
Dim r1 As Range Dim r2 As Range Dim r12 As Range Set r1 = Range("B11:D28") Set r2 = Range("B30:D40") Set r12 = Application.Union(r1, r2) Range("B41").FormulaLocal = "=SUM(" & Replace(Intersect(r12, Columns(r12.Column)).Address(False, False), ",", ";") & ")"
[/vba] В результате в B41 имеем =SUM(B11:B28;B30:B40)yrHeTaTeJlb