Excel:使用工作表作为函数?

Excel:使用工作表作为函数?,excel,Excel,我有一个excel工作表,它接受两个输入并生成一个输出 我现在可以打开工作表,在单元格A1和A2中键入两个,结果显示在A3中 是否有一种方法可以将其转换为函数或子例程,以便我可以在另一个工作表中使用它来填充值表?可以为您工作,但您不能引用其他工作表中的单元格。至少,Excel2003就是这样,您可以在2007年或2010年试用它,看看它是否有效 其他建议如下: 是的,您可以创建一个子程序。 但是,您不能创建工作表功能,因为不允许他们更改工作表 在该工作表上,创建一个函数: public fun

我有一个excel工作表,它接受两个输入并生成一个输出

我现在可以打开工作表,在单元格A1和A2中键入两个,结果显示在A3中

是否有一种方法可以将其转换为函数或子例程,以便我可以在另一个工作表中使用它来填充值表?

可以为您工作,但您不能引用其他工作表中的单元格。至少,Excel2003就是这样,您可以在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”想解释一下为什么@StéphaneGerber没有任何意义吗?我能在什么地方联系你吗,我真的需要这个来工作,谢谢你。@StéphaneGerber你在这里联系我(没有任何帮助,所以讨论可能会被一个mod永久删除)。如果你认为这段代码不起作用,请在评论中解释原因。好的,明白了!只能从VBA调用函数,不能从工作表调用函数。我不想听起来粗鲁,只是让我很生气。。。