Ребят, в лабораторной работе задание: произвести обмен данными (значениями) между двумя диапазонами. Нашла макрос, он работает как надо, все замечательно... Но мне для защиты нужно объяснить каждую функцию, строку и их значения.
вот сам макрос:
Код
Sub SelsXchange()
With Selection
If Not .Areas.Count = 2 Then Exit Sub
If Not .Areas(1).Columns.Count = .Areas(2).Columns.Count Then Exit Sub
If Not .Areas(1).Rows.Count = .Areas(2).Rows.Count Then Exit Sub
Dim tmpArea: tmpArea = .Areas(1)
'Range("A1:A10").Value = tmpArea.Value
.Areas(1).Value = .Areas(2).Value
.Areas(2).Value = tmpArea
'.Areas(2).Value = Range("A1:A10").Value
End With
End Sub
Sub SelsXchange()
With Selection 'короткое обращение к выделенной области, чтобы не писать Selection в каждой строке
'Если количество выделенных несмежных диапазонов не равно двум - выход из процедуры
If Not .Areas.Count = 2 Then Exit Sub
'Если количество столбцов несмежных диапазонов не равно - выход из процедуры
If Not .Areas(1).Columns.Count = .Areas(2).Columns.Count Then Exit Sub
'Если количество строк несмежных диапазонов не равно - выход из процедуры
If Not .Areas(1).Rows.Count = .Areas(2).Rows.Count Then Exit Sub
'массив для хранения значений одного из диапазонов, т.к. придется затереть его значениями другого
Dim tmpArea
'записываем в массив значения первого выделенного диапазона
tmpArea = .Areas(1)
'первому диапазону присваиваем значения второго диапазона
.Areas(1).Value = .Areas(2).Value
'во второй диапазон записываем значения из массива tmpArea, в котором у нас значения первого диапазона
.Areas(2).Value = tmpArea
End With
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...