Всем привет.
У меня есть скрипт, который берёт, например, 10-ю строку листа и меняет её на 8-ю строку, и 8-ю строку на 10 соответственно.
Меняться должны лишь данные, без вырезания строк, так как на соседнем листе формулы, которые сбиваются при вырезании столбцов.
Скрипт уже готов, но проблема в том, что можно выбрать диапазон лишь через строку, если выбрать две соседние строки (10,9), то скрипт ругается.
Нужно сделать так, чтоб выделялись две соседние строки отдельно, а не в один диапазон, так как потом идёт работа с Areas.
Буду благодарен любой помощи
У меня есть скрипт, который берёт, например, 10-ю строку листа и меняет её на 8-ю строку, и 8-ю строку на 10 соответственно.
Меняться должны лишь данные, без вырезания строк, так как на соседнем листе формулы, которые сбиваются при вырезании столбцов.
Скрипт уже готов, но проблема в том, что можно выбрать диапазон лишь через строку, если выбрать две соседние строки (10,9), то скрипт ругается.
Нужно сделать так, чтоб выделялись две соседние строки отдельно, а не в один диапазон, так как потом идёт работа с Areas.
Буду благодарен любой помощи
Код |
---|
Sub Макрос5() Application.ScreenUpdating = False Set pl = ThisWorkbook.Sheets("Транспорт") Set zt = ThisWorkbook.Sheets("Транспорт зеркало") a = Application.ActiveCell.Row ThisWorkbook.Sheets("Транспорт зеркало").Activate Application.Union(Range(Cells(a, 1), Cells(a, 2)), Range(Cells(a - 2, 1), Cells(a - 2, 2))).Select Dim ra As Range: Set ra = Selection msg1 = "Надо выделить ДВА диапазона ячеек одинакового размера" msg2 = "Надо выделить 2 диапазона ячеек ОДИНАКОВОГО размера" If ra.Areas.Count <> 2 Then MsgBox msg1, vbCritical, "Ошибка": Exit Sub If ra.Areas(1).Count <> ra.Areas(2).Count Then MsgBox msg2, vbCritical, "Ошибка": Exit Sub Application.ScreenUpdating = False arr2 = ra.Areas(2).Value ra.Areas(2).Value = ra.Areas(1).Value ra.Areas(1).Value = arr2 pl.Select Application.ScreenUpdating = True End Sub |