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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос исправить, чтобы он пропускал объединенные ячейки - Мир MS Excel

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

Excel 2013
Добрый вечер.
Есть макрос объединяет все ячейки в столбце по нужным группам, нужная группа определяется по соседнему столбцу. Если ячейки в первом столбце уже объединены, то объединяем те же ячейки во втором столбце. Количество ячеек в каждой группе разное.

[vba]
Код
Sub MergeToOneCell()
Application.DisplayAlerts = False
Const sDELIM As String = "; "
Dim rCell As Range
Dim sMergeStr As String
Dim lLastRow%, mcells_count%
lLastRow = Cells(Rows.Count, 2).End(xlUp).Row
For i = 1 To lLastRow
If Cells(i, 1).MergeCells Then
mcells_count = Cells(i, 1).MergeArea.Count - 1
sMergeStr = ""
For Each rCell In Range("B" & i & ":B" & i + mcells_count)
sMergeStr = sMergeStr & rCell.Text & sDELIM
Next rCell

Range("B" & i & ":B" & i + mcells_count).Merge
Range("B" & i & ":B" & i + mcells_count).Value = sMergeStr
i = i + mcells_count
End If
Next
Application.DisplayAlerts = True
End Sub
[/vba]

Но у меня возникла загвоздка: если в столбцах есть объединенные ячейки (объединение по горизонтали, как в примере2 во вложении) макрос не отрабатывает.
Помогите добавить условие, чтобы объединенные по строкам ячейки пропускались. Такое возможно?
И можно ли заменить ссылки в макросе на конкретные столбцы на столбцы выделенные пользователем?


Сообщение отредактировал olgazi - Вторник, 10.01.2017, 19:25
 
Ответить
СообщениеДобрый вечер.
Есть макрос объединяет все ячейки в столбце по нужным группам, нужная группа определяется по соседнему столбцу. Если ячейки в первом столбце уже объединены, то объединяем те же ячейки во втором столбце. Количество ячеек в каждой группе разное.

[vba]
Код
Sub MergeToOneCell()
Application.DisplayAlerts = False
Const sDELIM As String = "; "
Dim rCell As Range
Dim sMergeStr As String
Dim lLastRow%, mcells_count%
lLastRow = Cells(Rows.Count, 2).End(xlUp).Row
For i = 1 To lLastRow
If Cells(i, 1).MergeCells Then
mcells_count = Cells(i, 1).MergeArea.Count - 1
sMergeStr = ""
For Each rCell In Range("B" & i & ":B" & i + mcells_count)
sMergeStr = sMergeStr & rCell.Text & sDELIM
Next rCell

Range("B" & i & ":B" & i + mcells_count).Merge
Range("B" & i & ":B" & i + mcells_count).Value = sMergeStr
i = i + mcells_count
End If
Next
Application.DisplayAlerts = True
End Sub
[/vba]

Но у меня возникла загвоздка: если в столбцах есть объединенные ячейки (объединение по горизонтали, как в примере2 во вложении) макрос не отрабатывает.
Помогите добавить условие, чтобы объединенные по строкам ячейки пропускались. Такое возможно?
И можно ли заменить ссылки в макросе на конкретные столбцы на столбцы выделенные пользователем?

Автор - olgazi
Дата добавления - 10.01.2017 в 19:24
bmv98rus Дата: Вторник, 10.01.2017, 20:47 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4111
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
olgazi,
Пример, упомянутый, был бы к месту.
Аааа, пример в крос


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Вторник, 10.01.2017, 21:33
 
Ответить
Сообщениеolgazi,
Пример, упомянутый, был бы к месту.
Аааа, пример в крос

Автор - bmv98rus
Дата добавления - 10.01.2017 в 20:47
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос исправить, чтобы он пропускал объединенные ячейки (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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