Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Поддиапазон-столбец из несплошного диапазона - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поддиапазон-столбец из несплошного диапазона (Макросы/Sub)
Поддиапазон-столбец из несплошного диапазона
yrHeTaTeJlb Дата: Понедельник, 22.09.2014, 10:13 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Например:
[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 массивом и в цикле получать нужный адрес.
 
Ответить
СообщениеНапример:
[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
Дата добавления - 22.09.2014 в 10:13
AndreTM Дата: Понедельник, 22.09.2014, 10:34 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
[vba]
Код
? Intersect(r12, Columns(r12.Column)).Address
[/vba]


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Понедельник, 22.09.2014, 10:43
 
Ответить
Сообщение[vba]
Код
? Intersect(r12, Columns(r12.Column)).Address
[/vba]

Автор - AndreTM
Дата добавления - 22.09.2014 в 10:34
yrHeTaTeJlb Дата: Понедельник, 22.09.2014, 10:56 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
? Intersect(r12, Columns(r12.Column)).Address

Спасибо, помогло
[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(" & Replace(Intersect(r12, Columns(r12.Column)).Address(False, False), ",", ";") & ")"
[/vba]
В результате в B41 имеем =SUM(B11:B28;B30:B40)
 
Ответить
Сообщение
? Intersect(r12, Columns(r12.Column)).Address

Спасибо, помогло
[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(" & Replace(Intersect(r12, Columns(r12.Column)).Address(False, False), ",", ";") & ")"
[/vba]
В результате в B41 имеем =SUM(B11:B28;B30:B40)

Автор - yrHeTaTeJlb
Дата добавления - 22.09.2014 в 10:56
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поддиапазон-столбец из несплошного диапазона (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!