excel的全局粘贴值

excel的全局粘贴值

问题描述:

以下代码仅适用于仅粘贴值事件。当数值在同一张纸上移动时,它就会起作用。但是,如果我从一个不同的工作簿复制一个值并运行该宏,Excel会抱怨数据超出范围。怎样才能制作一个可以在整个excel程序上运行的全局粘贴值宏?excel的全局粘贴值

Sub PasteValOnly() 
' 
' PasteValOnly Macro 
' pastes values only 
' 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 
End Sub 
+0

不知道我理解。如果我创建Book1和Book2,请将代码粘贴到Book2中,复制Book1中的数据,激活Book2并运行代码,然后执行你期望的操作... – assylias 2012-02-27 18:37:34

+0

@assylias:它不会(不知道为什么)如果它不同Excel实例 – 2012-02-27 18:39:56

+0

@SiddharthRout否 - 您不能复制粘贴值的跨实例,您将不得不选择文本(如您在答案中所做的那样)。我认为OP在Excel的同一个实例中意味着2个工作簿。 – assylias 2012-02-27 18:41:45

并把宏观你PERSONAL.XLSB,这样一来就会一直工作。

这是我用:

'GENERIC MACROS 
Sub GxPasteValuesOnly() 'Assigned to Ctrl+Shift+v 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, skipBlanks:=False, Transpose:=False 
End Sub 

试试这个

ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:= False