DmitryPrint
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: но что там произойдет с диапазонами | В порядке все. Второй раз по одному и тому же не проходит и ничего не пропускает. По лаконичности и компактности удаление здорово сделано. Я бы, для начала, подрихтовал так: Код: With rng lR_Cnt = .Rows.Count lC_Cnt = .Columns.Count If lR_Cnt <= lC_Cnt Then Call sb_DelEmptyRC_Del(.Columns, lC_Cnt, lR_Cnt) Call sb_DelEmptyRC_Del(.Rows, lR_Cnt, .Columns.Count) Else Call sb_DelEmptyRC_Del(.Rows, lR_Cnt, lC_Cnt) Call sb_DelEmptyRC_Del(.Columns, lC_Cnt, .Rows.Count) End If 'Если первые пустые, то в .UsedRange они не входят 'удаляем (если надо конечно) Do While (Mid(.Address, 2, 1) <> "A") Range("A:A").Delete Loop Do While (Mid(.Address, 4, 1) <> "1") Range("1:1").Delete Loop End With | Действия по разметке надо, видимо, попробовать организовать на базе str_CellsNeededEmpty = "B7,D11,F7,F13,D16,H13,H5,I7,I11,J13,K7,K11,K16,L15,L5,L3,L1" Range(str_CellsNeededEmpty).Value = Empty т.е. перебирая ячейки, программно накопить переменную String, которую потом подсунуть в Range. Оценку значений можно попробовать взять готовую из какого-нить макроса для чистки текста перед версткой. |