我是VBA新手,但已成功创建了一些有用的Excel功能。我现在正在努力的那个,看起来应该很简单,就是在逃避我。我想我误解了语法,需要一些指导。
考虑以下截屏;我试图在E列中创建函数,它只是来自D $ n的VALUE。
到目前为止,这是我所得到的:
Function PASTVALUE(q As String)
q.PasteSpecial Paste:=xlPasteValues
End Function
如果我理解正确的话,就是将输入值(在我的例子中,单元格D$n
的内容)作为字符串读取,然后使用PasteValues
粘贴它。
在粘贴之前,我是否需要以某种方式复制它?我认为q As String
参数是将它带入函数的原因。
但是如果我没有复制,是不是试图从空剪贴板paste
...在这种情况下我没有想法我应该用什么来完成这个
帮助!
答案 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中的计算过程就会中断。
将剪贴板数据粘贴到工作表中因此属于禁用类别。
一种解决方案是将代码放在宏中;可以通过工作表上的按钮访问。这超出了计算周期,因此是允许的。