Excel:将工作表用作函数?

17 浏览
0 Comments

Excel:将工作表用作函数?

我有一个Excel工作表,它需要两个输入并生成一个输出。

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

有没有办法将这个变成一个函数或子程序,这样我就可以在另一个工作表中使用它来填充数值表格了?

0
0 Comments

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链接也对我有帮助...

0