Всем привет!
Мне очень нужен макрос, который бы менял местами два любых выделенных диапазона ячеек в Excel (в том числе несвязанных диапазона (через удерживание Ctrl); например целиком строки - 1 и ,скажем, 21, или, например, ячейку А4 и С47, или и т.д.). При этом, чтобы менялось местами все: значения, ссылки, примечания, форматы и т.д.
Приятель написал упрощенный вариант вот так:
Sub Range_Rotation()
Dim strNLst As String
Dim strNCel As String
Dim strNLstDel As String
'On Error Resume Next
strNLst = ActiveSheet.Name
strNCel = ActiveCell.Address
Selection.Copy
Sheets.Add
ActiveSheet.Paste
strNLstDel = ActiveSheet.Name
Sheets(strNLstDel).Select
ActiveSheet.Columns("A:A").Select
' Application.CutCopyMode = False
Selection.Cut Destination:=ActiveSheet.Columns("C:C")
ActiveSheet.Range("B1").Select
Selection.CurrentRegion.Select
Selection.Copy
Sheets(strNLst).Select
Range(strNCel).Select
ActiveSheet.Paste
Sheets(strNLstDel).Select
ActiveWindow.SelectedSheets.Delete
End Sub
Но он кривовато работает (только для связанных диапазонов). И мне кажется, можно более грамотно написать, используя, может, динамические массивы, переменные типа Range или еще что-то в этом роде.
ЗАРАНЕЕ БЛАГОДАРЕН!