我正在尝试创建一个接受单元格作为参数的VBA函数,并使用各种Range.Offset从那里开始工作。此函数将在工作表单元格中调用。为了测试我正在使用这个简单的脚本:
Public Function testPublic(targetCell As Range) As Boolean
targetCell.Offset(0, 3).Value2 = "Test is successful!"
testPublic = True
End Function
要查看我是否可以让单元格引用工作,我会传递简单的引用,例如C5,但我只能获得#VALUE!错误。不知道这有什么问题。
尝试将Range更改为Variant,仍然无法正常工作
答案 0 :(得分:4)
您不能使用工作表中称为UDF的函数来更新工作表中的另一个单元格:该函数只能向包含该函数的单元格返回一个值(数组公式可以返回多个值,但同样仅返回到输入公式的单元格。
答案 1 :(得分:0)
尝试以下调用代码
If testPublic(targetCell:=Range1) Then
MsgBox "success"
End If
功能代码如下。根据您的逻辑更改ByRef和ByVal。
Public Function testPublic(ByRef targetCell As Range) As Boolean
targetCell.Offset(0, 3).Value2 = "Test is successful!"
testPublic = True
End Function