Добрый день. Прошу помочь преобразовать исходные данные к желаемому результату. Имеется исходная таблица с тремя графами: 1. Номер договора, 2. Дата заключения, 3. Причина отказа. Данные в исходной таблице представлены следующим образом: сначала идут строки с номерами договоров и датами их заключения (в этих строках не указаны причины отказов), а потом строки с причинами отказов по вышеуказанным договорам (в этих строках не указаны номера договоров и даты их заключения). В таблице с желаемым результатом в каждой строке заполнены все три графы. Пример во вложении. [moder]Дайте теме более конкретное название.[/moder]
Название темы изменил.
Добрый день. Прошу помочь преобразовать исходные данные к желаемому результату. Имеется исходная таблица с тремя графами: 1. Номер договора, 2. Дата заключения, 3. Причина отказа. Данные в исходной таблице представлены следующим образом: сначала идут строки с номерами договоров и датами их заключения (в этих строках не указаны причины отказов), а потом строки с причинами отказов по вышеуказанным договорам (в этих строках не указаны номера договоров и даты их заключения). В таблице с желаемым результатом в каждой строке заполнены все три графы. Пример во вложении. [moder]Дайте теме более конкретное название.[/moder]
Public Sub www() Dim r As Range, r1 As Range, a As Range, i&, j&, m& Sheets("Лист2").Cells.ClearContents With Sheets("Лист1") Set r = Intersect(.[a2].CurrentRegion.Offset(2), .Range("a:B")) Set r1 = Intersect(.[a2].CurrentRegion.Offset(2), .Range("c:c")) For i = 1 To r.SpecialCells(2).Areas.Count For m = 1 To r.SpecialCells(2).Areas(i).Rows.Count For j = 1 To r1.SpecialCells(2).Areas(i).Cells.Count r.SpecialCells(2).Areas(i).Cells(m, 1).Resize(, 2).Copy Sheets("Лист2").[a65536].End(xlUp)(2) Next r1.SpecialCells(2).Areas(i).Copy Sheets("Лист2").[c65536].End(xlUp)(2) Next Next End With End Sub
[/vba]
[vba]
Код
Public Sub www() Dim r As Range, r1 As Range, a As Range, i&, j&, m& Sheets("Лист2").Cells.ClearContents With Sheets("Лист1") Set r = Intersect(.[a2].CurrentRegion.Offset(2), .Range("a:B")) Set r1 = Intersect(.[a2].CurrentRegion.Offset(2), .Range("c:c")) For i = 1 To r.SpecialCells(2).Areas.Count For m = 1 To r.SpecialCells(2).Areas(i).Rows.Count For j = 1 To r1.SpecialCells(2).Areas(i).Cells.Count r.SpecialCells(2).Areas(i).Cells(m, 1).Resize(, 2).Copy Sheets("Лист2").[a65536].End(xlUp)(2) Next r1.SpecialCells(2).Areas(i).Copy Sheets("Лист2").[c65536].End(xlUp)(2) Next Next End With End Sub