我想知道如何将 Excel 表用作函数。
假设我在 Sheet1 中有一个带有一个参数的复杂计算,我想在第二张表中迭代 [1 到 400] 的范围以在 Sheet2 中创建一个 x,f(x)表。
我将使用 Excel 或 Open Office。
我该如何做这件事?
谢谢。
进度更新
尝试在 Sheet (General) 中进行测试:
Public Function test() as Boolean
test = True
End Function
然后在一个单元格中:
=test()
结果是#Name?
还尝试搜索在线教程。
部分解决:
- 通过将代码放入模块来实现功能的可见性。
- 在 VBA 中插入 -> 模块。
进步:
使用设置 av 值
Worksheets("Sheet1").Range("A1").Value = 10
or
Worksheets("Sheet1").Cells(1,1).Value = 10
默默地失败并且不执行下面的行。
进步:
如果我将代码简化为无参数的子程序并将其分配给按钮,这些技术就会很好地发挥作用。
解决方法
当使用从按钮启动的 VBA 宏而不是使用函数来执行时,执行非常简单。
我迭代了一系列行来获取计算的输入。
答案1
最好的方法是在 Excel VBA 中创建算法。您可以打开 VBA 并输入以下内容
Public Function Test1(x as Integer, y as Integer)
Test1 = x*y
End Function
您可以像调用公式栏中的其他函数一样调用此函数。
在公式栏中A1
=Test1(2,4)
结果为 8。
更改 VBA 中的算法以获得您想要的结果。
答案2
我正在寻找类似问题的答案并发现了类似的内容:
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
答案3
我更喜欢的一件事是通过改变参数来创建数据表,然后在创建的数据表中查找所需的值。
更合适的方法是用 Excel VBA 编写代码,这样可以非常轻松地调用它,无需付出太多努力。但是,如果您手头已有 Excel 表,则可以通过创建数据表轻松地使用前一个表。