我想知道如何使用excel表作为函数。
假设我在Sheet1中有一个复杂的计算,我想在第二个工作表中迭代一个范围,如[1到400],在Sheet2中创建一个x,f(x)表。
我将使用Excel或Open Office。
我该怎么做呢?
谢谢。
进度更新
尝试在工作表(常规)中进行测试:
Public Function test() as Boolean
test = True
End Function
然后在一个单元格中:
=test()
导致#Name?
还尝试了scouering在线教程。
部分解决:
- 通过将代码放入模块中来实现功能的可见性。
- 插入 - > VBA中的模块。
进展:
使用设置av值
Worksheets("Sheet1").Range("A1").Value = 10
or
Worksheets("Sheet1").Cells(1,1).Value = 10
静默地失败,不执行下面的行。
进展:
如果我将代码简化为无参数子程序并将其分配给按钮,则这些技术可以正常工作。
解决方法
使用从按钮启动的VBA宏而不是使用函数实现时,实现非常简单。
我迭代了一系列行来获得计算的输入。
1
RE测试功能失败 - 您是否为相关文件启用了宏? IIRC,他们被禁用,自定义功能将无法运行。
—
DMA57361
谢谢,我想也许这是一个可见性问题。将代码移动到模块解决了它。现在到了困难的部分:)
—
tovare
您上次更新中的这两个示例都适用于我(Excel 2003,您使用的是哪个版本?)。你也可以使用
—
DMA57361
Sheets("Sheet1")
和 .Formula = 10
- 设置值时效果相同(但检索时公式非常不同)。我怀疑这会有所帮助......
我尝试了两次安装Excel 2003.其中一个公司管理员禁用了一些VB按钮,但我解决了这个问题。第二个应该是不受公司蛇油的限制,但仍然没有工作。我明天会再试一次:-)
—
tovare
如果工作表受到保护,则无法设置该值。您必须取消保护它,或在锁定它时使用USERINTERFACEONLY参数。
—
Lance Roberts