我很惊讶VBA似乎不支持这种简单功能。假设我想将值0.5
写到函数(不是子!)内部的单元格E7
中:
Public Function writeToCell() As Integer
ActiveSheet.Range("E7").Value = 0.5
writeToCell = 0
End Function
当我在另一个单元格writeToCell
中调用函数F9
时,出现值错误,并且写入语句无法执行。
为什么我们不能写函数内部的单元格?有什么解决方法吗?我的问题是,我将写入某些预先指定的单元格的值取决于函数内部计算的某些中间结果。因此,当我从工作表中的目标单元格调用函数时,我将不得不写入该函数内的单元格。
答案 0 :(得分:1)
这是有可能的,尽管与传统方式(即不是通过UDF)相比有所不同
Function writeToCell() As Integer
Evaluate "performwrite(" & Range("E7").Address(0, 0) & ")"
writeToCell = 0
End Function
Sub performwrite(dest As Range)
dest.Value = 0.5
End Sub