Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

WinCity.Ru _ Microsoft/Office Excel _ Как сделать спец вставку ?

Автор: mpa Вторник, 08 Июля 2008, 16:55

Короче, человек сидит, постоянно копирует и постоянно делает "Спец вставка, Вставить значение".
Очень просит реализовать это или кнопкой на панельке Екселя, а еще лучше чтобы можно было на кнопку мыши это подать.
Подскажите плиз.
Спасибо.

Автор: Барэль Вторник, 08 Июля 2008, 22:08

Наверное как-то через макрос надо. Я сейчас попробовал записать макрос, в ячейке K13 находится выражение значение которого копирую в ячейку G18:

Код
Sub Макрос3()
'
' Макрос3 Макрос
' Макрос записан 08.07.2008 (User)
'
' Сочетание клавиш: Ctrl+y
'
   Range("K13").Select
   Selection.Copy
   Range("G18").Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
End Sub

Автор: xls Среда, 09 Июля 2008, 10:21

Лучше сделать так:

Sub PasteSpecial()
'
On Error GoTo Ex
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Ex:
End Sub

Назначить кнопку этому макросу можно и на панели инстументов через настройку, но лучше в пайле через панель ФОРМЫ.
Этот макрос будет вставлять значение скопированное в буфер обмена в любом указанном месте , но отменить вставку будет невозможно...

Автор: Барэль Среда, 09 Июля 2008, 22:42

А разве не нужно сперва выполнить выделение ячейки перед тем как выполнять процедуру Selection.PasteSpecial Paste

Добавлено Барэль, [mergetime]1215632579[/mergetime]
Метод PasteSpecial



Чтобы вставить диапазон или другой объект из Буфера обмена, используется метод PasteSpecial. Данный метод идентичен команде Правка | Специальная вставка (Edit | Paste Special). Синтаксис метода PasteSpecial является следующим.

Range_object.PasteSpecial paste, operation, skipBlanks, transpose

Необязательный параметр paste определяет элементы диапазона, - формулы, данные, форматы, комментарии - которые требуется вставить. Допустимыми значениями данного аргумента являются константы Excel:

xIPasteAll (по умолчанию), xIPasteFormulas, xIPasteValues, xIPasteFormats, xIPasteNotes или xIPasteAllExceptBorders.

Чтобы определить тип вставки, используется дополнительный параметр operation. Допустимыми значениями данного аргумента являются константы: xIPasteSpecialOperationNone (по умолчанию),
xIPasteSpecialOperationAdd, xIPasteSpecialOperationSubtract, xIPasteSpecialOperationMultiply или xIPasteSpecialOperationDivide.

Если следует пропустить при вставке пустые ячейки, присвойте необязательному параметру skipBlanks значение True. Значение по умолчанию для данного аргумента равно False.

Если требуется при вставке поменять местами строки и столбцы, присвойте необязательному параметру transpose значение True. Значение по умолчанию для данного аргумента равно False.

Автор: xls Четверг, 10 Июля 2008, 18:49

Возможно и нужно..... Но у меня и так работает.... В задаче было указано: повесить на кнопку специальную вставку значений. Задача выполнена. Может и не грамотно...., но работает... :-)
..... даже это : , Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
не надо....

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)