Страницы: 1
RSS
заменить "Вставить" на "Специальная вставка (значение)"
 
Подскажите, плиз, как реализовать в рабочей книге замену обычной вставки на вставку значений, чтобы всегда вставлялись только значения. И главное чтобы это распространялось только на эту книгу и не влияло на другие открытые книги.  
Заранее спасибо!
 
Авторекордер такое написал. Повесь этот макрос на какую нибудь клавишу    
 
Sub Макрос1()  
   ActiveSheet.Paste Link:=True  
End Sub
 
Сервис -> Настройка  
вкладка Команды  
Категория Правка  
В столбце Команды выберите    
значок Вставить значения  
и перетащите его на панель  
инструментов, например рядом  
с кнопкой Копировать. У вас    
появится прямоугольник с цифрами  
12, при нажатии на который  
будут копироваться только значения
 
Раз уж тема про "Вставить значения" то есть-ли сочетания клавиш для такой необходимой команды.
 
Спасибо, но это все не то.  
Нужно чтобы юзер жал Вставить, а у него специальная вставка работала, а так же на сочетание клавиш Ctrl+V и Shift+Insert тоже только специальная вставка была.
 
{quote}{login=roka}{date=01.06.2010 01:26}{thema=}{post}Спасибо, но это все не то.  
Нужно чтобы юзер жал Вставить, а у него специальная вставка работала, а так же на сочетание клавиш Ctrl+V и Shift+Insert тоже только специальная вставка была.{/post}{/quote}<И главное чтобы это распространялось только на эту книгу...>  
Только макросом.  
 
 
Sub PasteValues()  
   Selection.Copy  
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False  
Application.CutCopyMode = False  
End Sub  
 
Назначаете его на Ctrl+V и Shift+Insert.  
 
В 2007 можно как Kuzmich советовал, но опять таки это для всех книг Экса работать будет, а не только в "этой"...
 
{quote}{login=Serge 007}{date=03.06.2010 02:01}{thema=Re: }{post}{quote}{login=roka}{date=01.06.2010 01:26}{thema=}{post}  
Только макросом.  
Sub PasteValues()  
   Selection.Copy  
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False  
Application.CutCopyMode = False  
End Sub  
 
Назначаете его на Ctrl+V и Shift+Insert.  
 
В 2007 можно как Kuzmich советовал, но опять таки это для всех книг Экса работать будет, а не только в "этой"...{/post}{/quote}  
 
Не понятно только зачем Selection.Copy  
А как бы при этом еще подменить, чтобы при клике по меню "Вставить" тоже срабатывала процедура  PasteValues, ну естественно только в данной книге?
 
{quote}{login=roka}{date=01.06.2010 01:26}{thema=}{post}Спасибо, но это все не то.  
Нужно чтобы юзер жал Вставить, а у него специальная вставка работала, а так же на сочетание клавиш Ctrl+V и Shift+Insert тоже только специальная вставка была.{/post}{/quote}  
ИМХО Любой мало-мальски грамотный пользователь обойдет все Ваши ограничения самое большее за несколько минут.
Я сам - дурнее всякого примера! ...
 
Думаю все переназначив, врад ли юзер полезет кнопку вставки новую на панель выносить.
 
Без макросов книга из себя вообще ничего не представляет, поэтому юзеры обязаны по инструкции их разрешать.
 
Вобщем вот что наваял:  
Private Sub Workbook_Open()  
   With ThisWorkbook.Application  
       .OnKey "^{v}", "MyPaste"  
       .OnKey "+{INSERT}", "MyPaste"  
       .Run ("AddMyPaste")  
   End With  
End Sub  
 
Private Sub MyPaste()  
On Error Resume Next  
   If Selection.[is marked cell] Then
       Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _  
       :=False, Transpose:=False  
   Else  
       ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon _  
       :=False  
   End If  
Application.CutCopyMode = False  
End Sub  
 
Sub AddMyPaste()  
With ThisWorkbook.Application  
   Dim myControls As CommandBarControls  
   Dim ctl As CommandBarControl  
   Set myControls = CommandBars.FindControls _  
       (type:=msoControlButton, ID:=22)    '22 = cut  
   For Each ctl In myControls  
       ctl.OnAction = "MyPaste"  
   Next ctl  
End With  
End Sub  
 
Ну и на выходе:  
   With ThisWorkbook.Application  
       .OnKey "^{v}"  
       .OnKey "+{INSERT}"  
       .CommandBars("Cell").Reset  
   End With
 
Punto Switcher-ом пользуюсь.  
Там в настройках ставите _ Следить за буфером обмена  
а потом там же в настроках - Горячие клавиши - Показать историю обмена - назначаете клавиши Ctrl+Win+V...  
Работает в любой программе, где надо избавиться от форматирования или формул
 
{quote}{login=}{date=23.06.2010 03:27}{thema=}{post}Punto Switcher-ом пользуюсь.  
Там в настройках ставите _ Следить за буфером обмена  
а потом там же в настроках - Горячие клавиши - Показать историю обмена - назначаете клавиши Ctrl+Win+V...  
Работает в любой программе, где надо избавиться от форматирования или формул{/post}{/quote}  
 
<И главное чтобы это распространялось ТОЛЬКО на эту книгу...>
 
{quote}  
<И главное чтобы это распространялось ТОЛЬКО на эту книгу...>{/post}{/quote}  
 
а в других книгах не жмите Ctrl+Win+V :)
 
{quote}{login=}{date=23.06.2010 05:49}{thema=Re: Re: }{post}{quote}  
<И главное чтобы это распространялось ТОЛЬКО на эту книгу...>{/post}{/quote}  
 
а в других книгах не жмите Ctrl+Win+V :){/post}{/quote}Жесть :-)  
Уговорили, не буду :-)))
 
На это форуме ответили: http://forum.developing.ru/archive/index.php/t-3999.html  
Сразу поясню, что надо Alt удерживать и последовательно нажимать русские буквы П Е З. У меня с первыми двумя получилось, а вот З никак не хочет выбирать "значение". Но мы люди не гордые: два нажатие стрелки вниз и Вы у цели.
 
Вот у меня тут баг вылазит. Если данные копировать с другой книги Excel то все просто отлично работает, вставляются только значения, а вот если юзер копирует данные из 1С, то моя "специальная вставка" идет лесом, рушится все форматирование и т. п.  
 
Есть возможность побороть?
Страницы: 1
Читают тему
Наверх