简单的Excel VB单元格值更改 – 错误#1004:应用程序定义或对象定义的错误

我一直试图解决这个错误现在几个小时,我似乎无法看到这是什么,我在这里做错了。

我的macros如下:

Function testValueChange(cell As Range) On Error GoTo ErrorHandler Dim testValue As String testValue = Range(cell.Address) MsgBox testValue Range("Q2") = "new value" Exit Function ErrorHandler: MsgBox "Error #" & Err & " : " & Error(Err) End Function 

我能够正确地检索“testValue”并将其显示在MsgBox上。 但是,当我尝试设置一个新的值到单元格“Q2”,我得到错误“错误#1004:应用程序定义或对象定义的错误”。

有几个条目的networking上的错误,但没有他们在这种情况下,当我试图简单地设置一个string值的空单元格!

单元格“Q2”是空的,我select了这个单元格,因为它没有被合并,也没有引用另一个函数或任何东西。

在此先感谢所有的帮助!

如果你对返回没有兴趣,那么shahkalpesh就有答案,但是如果你有兴趣从其他地方运行时静静地监视macros,那么返回布尔值就像这样。

 Function testValueChange(cell As Range) as boolean TestValueChange = TRUE On Error GoTo ErrorHandler Dim testValue As String testValue = Range(cell.Address) MsgBox testValue Range("Q2") = "new value" Exit Function ErrorHandler: testValueChange = FALSE End Function 

用于vba子。

 If testValueChange then 'process worked Else 'process didn't work End if 

除非testvalue被更改为testValueChange并以stringforms返回?

我现在在Linux操作系统上,所以我不能在Excel中testing这个,但是先尝试设置一个范围对象然后赋值.value属性。 即:

 Dim RNG as Range Set RNG = Range("Q2") RNG.value = "new value" 

从函数(或函数启动的调用链)调用函数时,不能将值指定给单元格,也不能以任何方式更改它们。 只有一个小组将工作。 唯一的例外是可以将函数值分配给包含函数引用的单元格