VBA如何在函数中写入/修改单元格

时间:2019-07-18 08:21:23

标签: excel vba

我很惊讶VBA似乎不支持这种简单功能。假设我想将值0.5写到函数(不是子!)内部的单元格E7中:

Public Function writeToCell() As Integer
    ActiveSheet.Range("E7").Value = 0.5
    writeToCell = 0
End Function

当我在另一个单元格writeToCell中调用函数F9时,出现值错误,并且写入语句无法执行。

为什么我们不能写函数内部的单元格?有什么解决方法吗?我的问题是,我将写入某些预先指定的单元格的值取决于函数内部计算的某些中间结果。因此,当我从工作表中的目标单元格调用函数时,我将不得不写入该函数内的单元格。

1 个答案:

答案 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