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