Страницы: 1
RSS
Удаление Ячеек со сдвигом влево
 
Здравствуйте. Может где-то было, но я не нашел. Надо каким-то образом удалить ячейки со сдвигом влево чтобы они выравнивались по столбцам. В 1.xlsx как есть, а во 2.xlsx. Заранее спасибо за помощь.  
Изменено: Александр Зайцев - 16.07.2021 08:30:19 (Неккоректно поставленная задача)
 
Выделить целевой диапазон, F5, Выделить, пустые ячейки, Ок, Ctrl+минус, ячейки со сдвигом влево, Ок. Тада!
Изменено: JayBhagavan - 15.07.2021 18:50:48

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Здравствуйте. Ячейки все заполнены. Извините что не заполнил. Спасибо что откликнулись.
Изменено: vikttur - 15.07.2021 20:58:18
 
Александр Зайцев, каков пример - таков ответ. Прикладывайте адекватный пример. Уважайте чужое время.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Таблицы поправил.  Извиняюсь.
Изменено: vikttur - 16.07.2021 11:17:09
 
Александр Зайцев, объясните логику, согласно которой будет понятно, что надо удалить, а что оставить.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Цитата
Александр Зайцев написал:
Таблицы поправил.
В вашей большой куче мусора выделить кучку поменьше и удалить.
На какой еще ответ вы рассчитываете с такой постановкой вопроса и таким примером?
 
Какой вопрос такой ответ)
Изменено: DemonAMT - 16.07.2021 11:04:29
 
Вот так бы и хотелось. В большой кучке мусора удалить ячейки со сдвигом влево, чтобы "ИП Детство" выравнилось по столбцу.  
 
Может так?
Код
Sub Макрос2()

Dim Arr1 As Variant, Arr2 As Variant, Arr3 As Variant
Dim n As Integer, m As Integer, x As Integer, y As Integer, Lr1 As Integer, Lr2 As Integer
Dim sl As String

Lr1 = Workbooks("База.xlsm").Worksheets("Лист1").Cells(Rows.Count, 1).End(xlUp).Row
Arr1 = Workbooks("База.xlsm").Worksheets("Лист1").Range("A1:AN" & Lr1)

Lr2 = Workbooks("Шаблон_1.xlsx").Worksheets("Лист1").Cells(Rows.Count, 1).End(xlUp).Row
Arr2 = Workbooks("Шаблон_1.xlsx").Worksheets("Лист1").Range("A1:AN" & Lr2)

If Not Lr1 = Lr2 Then MsgBox "Количество строк в Базе 1 не равно количеству строк в Базе 2": Exit Sub

For n = 1 To UBound(Arr2, 1)
    For m = 1 To UBound(Arr2, 2)
        If Arr2(n, m) = "ИП Детсво" Then
            For x = 1 To UBound(Arr1, 2)
                If Arr1(n, x) = "ИП Детсво" Then
                    If x > m Then
                        For y = m To UBound(Arr1, 2)
                            If y < x Then
                                Arr1(n, y) = ""
                            Else
                                Arr1(n, m + (y - x)) = Arr1(n, y)
                                Arr1(n, y) = ""
                            End If
                        Next y
                    End If
                Exit For
                End If
            Next x
            Exit For
        End If
    Next m
Next n

Workbooks("База.xlsm").Worksheets("Результат").Range("A1:AN" & Lr1) = Arr1
Sheets("Результат").Select

End Sub
Изменено: msi2102 - 16.07.2021 14:14:03
 
Александр Зайцев, всегда "ИП Детство" будет критерием для того, что всё, что левее него, - мусор? А правее "ИП Детство" всегда только три ячейки будут значимыми?

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Цитата
JayBhagavan написал:
всегда "ИП Детство" будет критерием
Неее "ИП Детсво"  :D  
Страницы: 1
Наверх