需要使用VBA函数指导以在Excel中粘贴值

时间:2013-07-09 15:29:34

标签: function vba excel-vba excel

我是VBA新手,但已成功创建了一些有用的Excel功能。我现在正在努力的那个,看起来应该很简单,就是在逃避我。我想我误解了语法,需要一些指导。

考虑以下截屏;我试图在E列中创建函数,它只是来自D $ n的VALUE。 enter image description here

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

Function PASTVALUE(q As String)
q.PasteSpecial Paste:=xlPasteValues
End Function

如果我理解正确的话,就是将输入值(在我的例子中,单元格D$n的内容)作为字符串读取,然后使用PasteValues粘贴它。

在粘贴之前,我是否需要以某种方式复制它?我认为q As String参数是将它带入函数的原因。

但是如果我没有复制,是不是试图从空剪贴板paste ...在这种情况下我没有想法我应该用什么来完成这个

帮助!

2 个答案:

答案 0 :(得分:3)

您可以像这样“转移”'(显示)值

Function PASTEVALUE(rng As Range)
    PASTEVALUE = rng.Text
End Function

或使用Evaluate()函数评估该范围内的公式

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

答案 1 :(得分:0)

在计算过程中无法访问Excel的对象模型的某些功能;即在评估功能期间。从广义上讲,他们是以某种方式操纵细胞价值的人。如果反之亦然,那么Excel中的计算过程就会中断。

将剪贴板数据粘贴到工作表中因此属于禁用类别。

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