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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос объединения ячеек, с добавлением в неё функции - Мир MS Excel

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

Excel 2013
Доброго времени форумчане! Данную тему открывал ранее: http://www.excelworld.ru/forum/10-31195-1 , задача была решена спасибо nilem! Но, позже я понял, что проблема решена не полностью, а именно при копировании ячеек в право функция даёт область (=B1:E1), а должна =B1 и ещё есть проблема в том, что при пустой ячейке код выдаёт ошибку, то есть в идеале работа макроса:
при выделении определённой области группы ячеек, группа это объединённые ячейки с функцией (состав 8 шт.).
К сообщению приложен файл: 9288408.xlsm (19.0 Kb)
 
Ответить
СообщениеДоброго времени форумчане! Данную тему открывал ранее: http://www.excelworld.ru/forum/10-31195-1 , задача была решена спасибо nilem! Но, позже я понял, что проблема решена не полностью, а именно при копировании ячеек в право функция даёт область (=B1:E1), а должна =B1 и ещё есть проблема в том, что при пустой ячейке код выдаёт ошибку, то есть в идеале работа макроса:
при выделении определённой области группы ячеек, группа это объединённые ячейки с функцией (состав 8 шт.).

Автор - adamm1603
Дата добавления - 18.12.2016 в 07:58
Karataev Дата: Воскресенье, 18.12.2016, 11:13 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
Только вставленные формулы ссылаются не на первую ячейку в объединенной группе, а на соседнюю верхнюю. В прежней версии макроса так же было.
Просто так не получается сделать, чтобы все ячейки ссылались на первую ячейку объединенной группы, нужно усложнять макрос.
[vba]
Код
Sub Подставить_формулы()

    Dim cl As New Collection, rng As Range
    Dim i As Long, j As Long
    
    Application.ScreenUpdating = False
    
    For i = 1 To Selection.Rows.Count Step 8
        For j = 1 To Selection.Columns.Count
            cl.Add Item:=Selection.Cells(i, j).MergeArea.Address
        Next j
    Next i
    
    Selection.UnMerge
    
    For i = 1 To cl.Count
        Set rng = Range(cl(i))
        rng.Rows("2:8").Formula = "=" & rng.Cells(1, 1).Address(False, False)
        Range("A1:A8").Copy
        rng.PasteSpecial Paste:=xlPasteFormats
    Next i
    Application.CutCopyMode = False
    
    Application.ScreenUpdating = True
    
End Sub
[/vba]
 
Ответить
СообщениеТолько вставленные формулы ссылаются не на первую ячейку в объединенной группе, а на соседнюю верхнюю. В прежней версии макроса так же было.
Просто так не получается сделать, чтобы все ячейки ссылались на первую ячейку объединенной группы, нужно усложнять макрос.
[vba]
Код
Sub Подставить_формулы()

    Dim cl As New Collection, rng As Range
    Dim i As Long, j As Long
    
    Application.ScreenUpdating = False
    
    For i = 1 To Selection.Rows.Count Step 8
        For j = 1 To Selection.Columns.Count
            cl.Add Item:=Selection.Cells(i, j).MergeArea.Address
        Next j
    Next i
    
    Selection.UnMerge
    
    For i = 1 To cl.Count
        Set rng = Range(cl(i))
        rng.Rows("2:8").Formula = "=" & rng.Cells(1, 1).Address(False, False)
        Range("A1:A8").Copy
        rng.PasteSpecial Paste:=xlPasteFormats
    Next i
    Application.CutCopyMode = False
    
    Application.ScreenUpdating = True
    
End Sub
[/vba]

Автор - Karataev
Дата добавления - 18.12.2016 в 11:13
adamm1603 Дата: Воскресенье, 18.12.2016, 12:42 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Спасибо!
формулы ссылаются не на первую ячейку

это не принципиально, буду тестить!
 
Ответить
СообщениеСпасибо!
формулы ссылаются не на первую ячейку

это не принципиально, буду тестить!

Автор - adamm1603
Дата добавления - 18.12.2016 в 12:42
adamm1603 Дата: Воскресенье, 18.12.2016, 13:04 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Karataev на этот раз всё работает, как понимаю данный код
Код
Range("A1:A8").Copy
        rng.PasteSpecial Paste:=xlPasteFormats

копирует формат ячеек A1:F8 и переносит в нужные, а возможно это сделать сразу в одном макросе, я пробовал заменить строчки Вашего кода тем, макросом, что объединяет ячейки, но не получается
 
Ответить
СообщениеKarataev на этот раз всё работает, как понимаю данный код
Код
Range("A1:A8").Copy
        rng.PasteSpecial Paste:=xlPasteFormats

копирует формат ячеек A1:F8 и переносит в нужные, а возможно это сделать сразу в одном макросе, я пробовал заменить строчки Вашего кода тем, макросом, что объединяет ячейки, но не получается

Автор - adamm1603
Дата добавления - 18.12.2016 в 13:04
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос объединения ячеек, с добавлением в неё функции (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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