Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2003/XP/2000 - [решено] Разъединить ячейку с копированием значения в результирующий набор

Ответить
Настройки темы
2003/XP/2000 - [решено] Разъединить ячейку с копированием значения в результирующий набор

Ветеран


Сообщения: 565
Благодарности: 41

Профиль | Сайт | Отправить PM | Цитировать


Есть объединенная ячейка, которую хотелось бы разъединить так, чтобы исходное значение скопировалось во все результирующие ячейки.
Для простоты возьмем, что объединены они только в одном столбце и не более чем по 10 ячеек

Написал макрос:

Код: Выделить весь код
Sub UnmergeCells()
Dim iROW As Integer, iColumn As Integer, sTMP As String, i As Integer, s As Object

    Application.ScreenUpdating = False
    s = ActiveCell.Cells
    For iROW = 0 To 10
                   ActiveWorkbook.ActiveSheet.Cells(s.Row + iROW, s.Column).MergeArea.UnMerge
    Next iROW
    
    s.Select
    'Range("A3").Select
    iROW = 1
    Do While Not IsEmpty(ActiveCell)
      i = iROW - 1
      If ActiveCell.Offset(iROW, 0).Value = "" Then
            ActiveCell.Offset(iROW, 0).Value = s.Value
      End If
      iROW = iROW + 1
      ActiveCell.Offset(1, 0).Select
    Loop
End Sub
Ругается object variable or with block variable not set
Где ошибся? Может, у кого готовое решение есть, задача-то известная...

-------
Tega AutoPatcher. Все обновления для XP в одном пакете. http://tega.ru/dirk/links.html


Отправлено: 07:11, 02-04-2010

 

Ветеран


Сообщения: 565
Благодарности: 41

Профиль | Сайт | Отправить PM | Цитировать


Пардон, сам разобрался. Конечный вариант(разъединяет текущую ячейку вниз)

Код: Выделить весь код
Sub UNM()
Dim iROW As Integer, iColumn As Integer, sTMP As String, i As Integer, s As Range
    Application.ScreenUpdating = False
    Set s = ActiveCell
          If ActiveWorkbook.ActiveSheet.Cells(s.Row + iROW, s.Column).MergeCells Then
                i = ActiveWorkbook.ActiveSheet.Cells(s.Row + iROW, s.Column).MergeArea.Count - 1
                ActiveWorkbook.ActiveSheet.Cells(s.Row + iROW, s.Column).MergeArea.UnMerge
          End If
    s.Select
    ActiveCell.Offset(1, 0).Select
    Do While IsEmpty(ActiveCell) And i > 0
      i = i - 1
      ActiveCell.Value = s.Value
      ActiveCell.Offset(1, 0).Select
    Loop
End Sub

-------
Tega AutoPatcher. Все обновления для XP в одном пакете. http://tega.ru/dirk/links.html


Отправлено: 07:29, 02-04-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Pliomera

Технолог


Сообщения: 819
Благодарности: 117

Профиль | Отправить PM | Цитировать


Да уж. Гвозди забивать микроскопом. Циклы, объекты, куча переменных....

Решение:

Код: Выделить весь код
Sub UNM2()
ActiveCell.MergeArea.UnMerge
Selection.Value = ActiveCell
End Sub
Всё.

Последний раз редактировалось Pliomera, 03-04-2010 в 00:10.


Отправлено: 23:40, 02-04-2010 | #3



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2003/XP/2000 - [решено] Разъединить ячейку с копированием значения в результирующий набор

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Проблема с выделением и копированием в ХР lusia1994 Microsoft Windows 2000/XP 1 30-03-2007 15:32
iframe, не нужен мне скроллинг, увеличивай ячейку... Drem Вебмастеру 5 02-08-2006 01:27
Разъединить один столбец на столбцы в екселе The Lucifier Программное обеспечение Windows 7 07-06-2006 00:54
Проблемы с копированием файлов KVAnt Microsoft Windows NT/2000/2003 7 17-08-2005 06:13
Проблема с копированием. QRZ57 Оптические приводы 11 03-05-2005 18:26




 
Переход