用户定义粘贴特殊功能

时间:2017-02-11 11:07:23

标签: excel vba copy-paste

Function PS(X As Range) As Double
    Range(X).Select
    Selection.Copy
    Range(X).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
End Function

我正在尝试创建一个函数PS,它从单元格获取值,并在使用PS函数的单元格中特殊粘贴。上面的代码没有给出所需的值。

1 个答案:

答案 0 :(得分:0)

您需要的第一件事是获取所选范围值的函数。将其放在新模块

Function Hardcode(r As Range)
    Hardcode = r.Value
End Function

例如:将=Hardcode(A1)放入单元格B1会返回单元格A1的值。但是,根据我的理解,您还想对B1的新值进行硬编码。为此,您需要单独的Sub

将此代码放在与您希望使用上述功能的工作表对应的工作表模块中:

Private Sub Worksheet_Change(ByVal Target As Range)
    If InStr(LCase(Target.Formula), "hardcode") Then
        Target.Value = Target.Value
    End If
End Sub