Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.08.2013, 15:53   #11
OlgaK
Новичок
Джуниор
 
Регистрация: 28.08.2013
Сообщений: 7
По умолчанию

Удалить или объединить с заполненной ячейкой выше
OlgaK вне форума Ответить с цитированием
Старый 28.08.2013, 17:53   #12
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

Цитата:
Сообщение от OlgaK Посмотреть сообщение
Удалить или объединить с заполненной ячейкой выше
попробуйте так:

Код:
Sub OlgaK()
Dim lRow&, i&, j&, n&, t, rDel As Range
t = Timer
Application.ScreenUpdating = False
lRow = Cells(Rows.Count, 1).End(xlUp).Row

For i = 4 To lRow
    If Cells(i, 1) > 0 Then
        For j = i + 1 To lRow
            If IsEmpty(Cells(j, 1)) And IsEmpty(Cells(j, 3)) And IsEmpty(Cells(j, 4)) Then
                If rDel Is Nothing Then Set rDel = Range(Cells(j, 3), Cells(j, 3)) Else Set rDel = Union(rDel, Range(Cells(j, 3), Cells(j, 3)))
            End If
            If Cells(j, 1) > 0 Then
                With Range(Cells(i, 1), Cells(j - 1, 1))
                    .HorizontalAlignment = xlCenter
                    .VerticalAlignment = xlCenter
                    .WrapText = True
                    .Orientation = 0
                    .AddIndent = False
                    .IndentLevel = 0
                    .ShrinkToFit = False
                    .ReadingOrder = xlContext
                    .MergeCells = True
                End With
                With Range(Cells(i, 2), Cells(j - 1, 2))
                    .HorizontalAlignment = xlCenter
                    .VerticalAlignment = xlCenter
                    .WrapText = True
                    .Orientation = 0
                    .AddIndent = False
                    .IndentLevel = 0
                    .ShrinkToFit = False
                    .ReadingOrder = xlContext
                    .MergeCells = True
                End With
                Exit For
            End If
        Next j
    i = j - 1
    End If
Next i

If Not rDel Is Nothing Then rDel.EntireRow.Delete
Application.ScreenUpdating = True
MsgBox "Время обработки: " & Timer - t, vbInformation, "Объединение"
End Sub
пример удаления строки взят вот от сюда:
http://excelvba.ru/code/ConditionalRowsDeleting
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 28.08.2013, 18:29   #13
OlgaK
Новичок
Джуниор
 
Регистрация: 28.08.2013
Сообщений: 7
По умолчанию

Огромнейшее спасибо! То, что доктор прописал.
OlgaK вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Минёр на Java под Android. Алгоритм открытия соседних ячеек. MeTeOpA Java для Web (EE, Servlet, JSP, Tomcat, Spring MVC) 1 10.07.2013 04:23
Удаление пустых столбцов в таблице umka777_89 Microsoft Office Word 6 31.05.2013 07:01
Объединение соседних элементов Kcux JavaScript, Ajax 0 17.05.2013 15:01
Запрет пустых столбцов в DataSet JeyKip C# (си шарп) 4 18.04.2011 09:43
Удаление содержимого соседних ячеек после ввода данных. KOSTIK1 Microsoft Office Excel 3 29.12.2009 16:53