【发布时间】:2010-08-25 22:27:07
【问题描述】:
我有一个 Excel 工作表,它接受两个输入并生成一个输出。
我目前可以打开工作表,在单元格 A1 和 A2 中键入这两个,结果显示在 A3 中。
有没有办法可以把它变成一个函数或子例程,这样我就可以在另一个工作表中使用它来填写一个值表?
【问题讨论】:
标签: excel
我有一个 Excel 工作表,它接受两个输入并生成一个输出。
我目前可以打开工作表,在单元格 A1 和 A2 中键入这两个,结果显示在 A3 中。
有没有办法可以把它变成一个函数或子例程,这样我就可以在另一个工作表中使用它来填写一个值表?
【问题讨论】:
标签: 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
【讨论】: