Excel:将工作表用作函数?
Excel中有一种名为"Data tables"的功能,可以实现类似的效果,但是无法引用不同工作表中的单元格。至少对于Excel 2003而言,可以尝试在2007或2010版本中查看是否可以实现。
除此之外:
是的,可以创建一个子程序。
但是无法创建工作表函数,因为它们不允许更改工作表。
在工作表上创建一个函数,如下所示:
public function GetWhatever(byval p1 as variant, byval p2 as variant) as variant 'Make sure you're in AutoCalculation mode, otherwise use me.calculate me.range("A1").value = p1 me.range("A2").value = p2 GetWhatever = me.range("A3").value end function
然后,你可以从另一个过程中重复调用此函数,该过程在第二个工作表上,并将新获取的结果复制到工作表上的下一个可用行中:
for i = 1 to 10 me.cells(i,3).value = SheetWithCalculations.GetWhatever(me.cells(i,1).value, me.cells(i,2).value) next
你所写的内容没有任何意义...你写道"但是你显示了一个可以更改单元格的函数???" me.range("A1").value = p1"
能解释一下为什么它没有任何意义吗,éphaneGerber?
我可以在其他地方联系你吗,我真的需要这个工作,谢谢。
éphaneGerber:你正在这里联系我(以一种不太有帮助的方式,所以讨论可能会被管理员彻底删除)。如果你认为这段代码没有实现它应该实现的功能,请在评论中解释为什么。
好的,明白了!你只能从VBA调用函数,而不能从工作表中调用。我并不想听起来很无礼,只是Excel让我发疯......
这个stackoverflow链接也对我有帮助...