Объединить строки по границам (сложно) - VBA
Формулировка задачи:
Подскажите пожалуйста, как объединить строки по границам, т.е. между строками которые надо объединить есть границы
границы невидны (в файле примере есть, но можно соориентироватся по столбцу правильный ответ, над каждым правильным ответом есть граница)
правильный ответ | |||||||
стольец 1 | стольец 2 | стольец 3 | стольец 1 | стольец 2 | стольец 3 | ||
12 345 | ццццццц | лллл | 12 345 | ццццццц | лллл | ||
фффффф | дддд | 12 | ффффффввввввывв | дддддддд | |||
ввввв | |||||||
дддд | |||||||
12 | вывв | ||||||
ццццц | зззз | 546 | цццццуууууцццц | зззз12345 | |||
546 | ууууу | 12345 | |||||
цццц | |||||||
14111111 | ьбюбьб | 987 | 14111111цццц 11111йййй: 123 | ьбюбьб | |||
цццц 11111 | |||||||
987 | йййй: 123 | ||||||
987 | 14111111 | длдж | 987 | 14111111цццц 11111йййй: 123 | длджждэжждэж | ||
цццц 11111 | ждэж | ||||||
йййй: 123 | ждэж |
Решение задачи: «Объединить строки по границам (сложно)»
textual
Листинг программы
Sub pr() Dim b&(), x As Range, k&, i&, c(), rng As Range Set rng = ActiveSheet.UsedRange.Columns(1) Set rng = rng.Cells(3).Resize(rng.Cells.Count - 2) a = rng.Resize(, 3).Value k = rng.Cells(1).Offset(-1).Row For Each x In rng If x.Borders(9).LineStyle = 1 Then i = i + 1 ReDim Preserve b(i) b(i) = x.Row - k End If Next ReDim c(1 To UBound(b), 1 To UBound(a, 2)) For i = 1 To UBound(b) For j = b(i - 1) + 1 To b(i) For k = 1 To UBound(a, 2) c(i, k) = c(i, k) & a(j, k) Next Next Next rng.Cells(1).Offset(, 4).Resize(UBound(c), UBound(c, 2)) = c End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д