2010-08-25 104 views
2

我有一个需要两个输入并生成输出的excel工作表。Excel:使用工作表作为函数?

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

有没有一种方法可以将它变成函数或子例程,以便我可以在另一个工作表中使用它来填充值表?

回答

4

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 
+0

天才,谢谢! GetWhatever就是我正在寻找的东西。 – 2010-08-25 23:30:45

+0

你写的东西没有任何意义....你写 “虽然你不能制作工作表功能,因为他们不允许更换工作表。”然后你显示一个函数,在其中你改变单元? “me.range(”A1“)。value = p1” – 2015-10-25 10:20:26

+0

小心解释它为什么没有任何意义@StéphaneGerber? – GSerg 2015-10-25 10:21:19