【问题标题】:Excel: using a worksheet as a function?Excel:使用工作表作为函数?
【发布时间】:2010-08-25 22:27:07
【问题描述】:

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

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

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

【问题讨论】:

    标签: excel


    【解决方案1】:

    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"
    • 想解释一下为什么@StéphaneGerber 没有任何意义?
    • 我可以在某个地方联系你吗,我真的需要这个工作,谢谢。
    • @StéphaneGerber 你在这里联系我(以一种无益的方式,所以讨论可能会被模组永久删除)。如果您认为这段代码没有做到should do,请在评论中解释原因。
    • 好的,知道了!您只能从 VBA 调用函数,而不能从工作表调用。我不想听起来粗鲁,只是 Excel 让我发疯......
    猜你喜欢
    • 1970-01-01
    • 2017-02-25
    • 1970-01-01
    • 2014-10-22
    • 1970-01-01
    • 2011-06-06
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多