Доброго времени суток, уважаемые программисты. Помогите разобраться.
В файле xls находится макрос копирования содержимого одних ячеек - в другие ячейки. Если скопировать в буфер обмена Автофигуру (например синий прямоугольник) - и нажать на кнопку макроса, то после окончания работы макроса - буфер обмена будет пуст. Я хочу заставить макрос "запомнить" - что находилось в буфере обмена - до начала его (макроса) работы... и после окончания работы макроса - вновь добавить в буфер обмена предыдущее содержимое (например Автофигуру - синий прямоугольник)
Вопрос: как в начале работы макроса записать в переменную содержимое из буфера, а после работы макроса запихать содержимое из переменной в буфер?
(вопрос не в том, как копировать содержимое ячеек - минуя буфер обмена, а как заставить макрос "запомнить" что находилось в буфере обмена - перед началом работы макроса. То есть макрос должен по окончании своей работы - вставить в буфер обмена то, что было там (в буфере обмена) - ДО начала работы макроса.)
Доброго времени суток, уважаемые программисты. Помогите разобраться.
В файле xls находится макрос копирования содержимого одних ячеек - в другие ячейки. Если скопировать в буфер обмена Автофигуру (например синий прямоугольник) - и нажать на кнопку макроса, то после окончания работы макроса - буфер обмена будет пуст. Я хочу заставить макрос "запомнить" - что находилось в буфере обмена - до начала его (макроса) работы... и после окончания работы макроса - вновь добавить в буфер обмена предыдущее содержимое (например Автофигуру - синий прямоугольник)
Вопрос: как в начале работы макроса записать в переменную содержимое из буфера, а после работы макроса запихать содержимое из переменной в буфер?
(вопрос не в том, как копировать содержимое ячеек - минуя буфер обмена, а как заставить макрос "запомнить" что находилось в буфере обмена - перед началом работы макроса. То есть макрос должен по окончании своей работы - вставить в буфер обмена то, что было там (в буфере обмена) - ДО начала работы макроса.)mv6677
_Boroda_, я же написал в первом сообщении - что вопрос не в том, как копировать содержимое ячеек, а как заставить макрос "запомнить" что находилось в буфере обмена - перед началом работы макроса. То есть макрос должен по окончании своей работы - вставить в буфер обмена то, что было там (в буфере обмена) - ДО начала работы макроса.
Я спрашивал - как в начале работы макроса записать в переменную содержимое из буфера, а после работы макроса запихать содержимое из переменной в буфер?
_Boroda_, я же написал в первом сообщении - что вопрос не в том, как копировать содержимое ячеек, а как заставить макрос "запомнить" что находилось в буфере обмена - перед началом работы макроса. То есть макрос должен по окончании своей работы - вставить в буфер обмена то, что было там (в буфере обмена) - ДО начала работы макроса.
Я спрашивал - как в начале работы макроса записать в переменную содержимое из буфера, а после работы макроса запихать содержимое из переменной в буфер?mv6677
Ну как-то так. Что было выделено до начала работы, то и вставится в конце. oldSelection можно вызывать из любого места. В конце вставится то, что было выделено на момент вызова. [vba]
Код
Sub Макрос2() Dim obj As Object Dim rRange As Range
Range("A10").Select If Not rRange Is Nothing Then rRange.Copy Range("A10") Else obj.Select Selection.Copy Range("A10").Select ActiveSheet.Paste End If Exit Sub
oldSelection: If TypeName(Selection) = "Range" Then Set rRange = Selection Set obj = Nothing Else Set obj = Selection Set rRange = Nothing End If Return End Sub
[/vba]
Ну как-то так. Что было выделено до начала работы, то и вставится в конце. oldSelection можно вызывать из любого места. В конце вставится то, что было выделено на момент вызова. [vba]
Код
Sub Макрос2() Dim obj As Object Dim rRange As Range
Range("A10").Select If Not rRange Is Nothing Then rRange.Copy Range("A10") Else obj.Select Selection.Copy Range("A10").Select ActiveSheet.Paste End If Exit Sub
oldSelection: If TypeName(Selection) = "Range" Then Set rRange = Selection Set obj = Nothing Else Set obj = Selection Set rRange = Nothing End If Return End Sub
RAN, использовал ваш код. Что-то не работает. Копирую синий прямоугольник, жму на кнопку макроса, затем пытаюсь вставит содержимое буфера обмена - и эксель сигналит что буфер обмена - пустой.
RAN, использовал ваш код. Что-то не работает. Копирую синий прямоугольник, жму на кнопку макроса, затем пытаюсь вставит содержимое буфера обмена - и эксель сигналит что буфер обмена - пустой.mv6677