基于范围的单元格复制的错误1004
我已经看过无数的例子(还有很多可以find的)如何使用范围来完成一个VBA用户定义的函数/子复制一个指定单元格的值到另一个。 不幸的是,无论我尝试什么,我都无法避免错误1004应用程序定义或对象定义的错误。 这里是非常简单的testing代码:
Private Sub Foobar() On Error GoTo fooErrorHandler Dim c1 As Range Dim c2 As Range Set c1 = Sheets("Sheet1").Range("D2") Set c2 = Sheets("Sheet1").Range("B3") c2.Value = c1.Value Exit Sub fooErrorHandler: MsgBox "Error Number: " & Err.Number & vbNewLine _ & "Description: " & Err.Description End Sub
感谢您的任何帮助/指针!
一般来说,您不能使用一个Function
来操作工作表对象。 看起来你试图通过从barfoo
函数调用调用一个subroutine
来解决这个问题。 我怀疑这是错误…如果你手动运行子程序foobar
(按F5或从macros菜单运行)它应该执行没有错误。
我确认这个实现提出了错误,并且也没有错误地testingfoobar
的手动调用。
如果你能更好地描述最终目标,也许我们可以推荐一个更可靠的方法来实现它。
不允许修改UDF中的单元格(一个函数,在单元格内部使用,与内置公式相同)。 如果你从C1
单元中删除了barfoo
的呼叫, Foobar
和barfoo
都可以正常工作。