Function 需要VBA函数的指导才能在Excel中粘贴值

Function 需要VBA函数的指导才能在Excel中粘贴值,function,vba,excel,Function,Vba,Excel,我是VBA新手,但已经成功创建了一些有用的Excel函数。我现在正在做的一件事,看起来应该很简单,但我却在逃避。我想我误解了语法,需要一些指导 考虑以下屏幕截图;我试图在列E中创建函数,它只是D$n中的值。 到目前为止,这是我得到的: Function PASTVALUE(q As String) q.PasteSpecial Paste:=xlPasteValues End Function 如果我理解正确,它是将输入值(在我的例子中,是单元格D$n的内容)作为字符串读取,然后使用Past

我是VBA新手,但已经成功创建了一些有用的Excel函数。我现在正在做的一件事,看起来应该很简单,但我却在逃避。我想我误解了语法,需要一些指导

考虑以下屏幕截图;我试图在列E中创建函数,它只是D$n中的值。

到目前为止,这是我得到的:

Function PASTVALUE(q As String)
q.PasteSpecial Paste:=xlPasteValues
End Function
如果我理解正确,它是将输入值(在我的例子中,是单元格
D$n
的内容)作为字符串读取,然后使用
PasteValues
粘贴它

粘贴前是否需要以某种方式复制它?我认为是
qasstring
参数将其引入函数

但是,如果我不复制,它是否试图从空剪贴板粘贴。。在这种情况下,我不知道应该使用什么来实现这一点

救命啊

您可以像这样“传输”值(显示)

Function PASTEVALUE(rng As Range)
    PASTEVALUE = rng.Text
End Function
或者使用该函数计算该范围内的公式

 Function PASTEVALUE(rng As Range)
        PASTEVALUE = [rng]
    End Function

Excel对象模型的某些功能在计算过程中无法访问;i、 e.在功能评估期间。从广义上讲,他们是以某种方式操纵单元格中的值的人。如果反过来是真的,那么Excel中的计算过程将中断

因此,将剪贴板数据粘贴到工作表属于禁止的类别

一种解决方案是将代码放入宏中;可通过工作表上的按钮访问。这超出了计算周期,因此是允许的