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

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

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

Восстановить пароль

Купить рекламу на форуме - 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