Excel:从工作表调用vba函数时,将当前单元格作为参数传递

Excel:从工作表调用vba函数时,将当前单元格作为参数传递,vba,excel,excel-2010,Vba,Excel,Excel 2010,我试图创建一个VBA函数,它接受一个单元格作为参数,并使用多种Range.Offset从那里开始工作。此函数将在工作表单元格中调用。对于测试,我使用以下简单脚本: Public Function testPublic(targetCell As Range) As Boolean targetCell.Offset(0, 3).Value2 = "Test is successful!" testPublic = True End Function 为了看看我是否能让单元格引用工作

我试图创建一个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!错误不知道这有什么问题

尝试将范围更改为变量,但仍不起作用

请尝试下面的调用代码

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
尝试下面的调用代码

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

不能使用工作表中名为UDF的函数来更新工作表中的另一个单元格:该函数只能向包含该函数的单元格返回一个值(数组公式可以返回多个值,但同样只能向输入公式的单元格返回)


有关详细信息,请参见:

您不能使用工作表中名为UDF的函数来更新工作表中的另一个单元格:该函数只能向包含该函数的单元格返回一个值(数组公式可以返回多个值,但同样只能向输入公式的单元格返回)


有关详细信息,请参见:

不能使用工作表中的UDF函数来更新工作表中的另一个单元格:该函数只能向包含该函数的单元格返回值(数组公式可以返回多个值,但同样只能向输入公式的单元格返回)。有关更多信息,请参阅Thank@TimWilliams。显然,这确实是个问题。我删除了细胞操作代码,它可以正常工作。也许您可以将其作为答案发布,这样我就可以将其设置为一个。您不能使用工作表中名为UDF的函数来更新工作表中的另一个单元格:该函数只能向包含该函数的单元格返回一个值(数组公式可以返回多个值,但同样只能向输入公式的单元格返回)。有关更多信息,请参阅Thank@TimWilliams。显然,这确实是个问题。我删除了细胞操作代码,它可以正常工作。也许你可以把它作为一个答案贴出来,这样我就可以把它设为一个答案。问题实际上是UDF不能修改其他单元格的值。我删除了代码的第一行,它可以工作。在我的计算机上,上面的代码可以修改其他单元格的值,即偏移量(0,3)。OP是从工作表公式而不是从子单元格调用其函数。问题实际上是UDF无法修改其他单元格的值。我删除了代码的第一行,它工作在我的机器上。上面的代码能够修改另一个单元格的值,即偏移量(0,3)。OP正在从工作表公式而不是子单元格调用其函数。链接已失效!:(@SreenikethanI-updated链接已断开!:(@SreenikethanI-updated