有人知道如何将工作表包装成UDF函数吗?
本质上,我希望创建一个工作表或工作簿,它执行某些计算,然后在其他工作表或工作簿中重用这些代码。理想情况下,UDF将设置某些输入单元格的值,并从某个输出单元返回一个值。
这个问题的答案有问题,但效果不佳。
Using a UDF in Excel to update the worksheet
理想情况下,我希望在Excel中这样做,但我完全接受其他电子表格软件、第三方excel工具或替代平台的建议。
发布于 2016-01-12 07:56:30
我已经找到了我自己问题的答案。看起来UDF不能更改从excel实例中调用的单元格值。我想要的行为可以通过在第二个实例中创建一个新的Excel实例和openinf (当前工作簿的副本)来实现。然后,第一个实例可以调用修改第二个实例的UDF。因此,电子表格中的计算可以成功地封装在UDF中。
Option Explicit
Public xl As Excel.Application
Public wb As Workbook
Public ws As Worksheet
Function calc(x As Double) As Double
If xl Is Nothing Then
Set xl = CreateObject("Excel.Application")
Set wb = xl.Workbooks.Open(ThisWorkbook.FullName)
xl.Visible = False
Set ws = wb.Worksheets("CalcluationModule")
End If
ws.Range("i").Value = x
wb.Application.Calculate
calc = ws.Range("PV").Value
End Function
https://stackoverflow.com/questions/34452049
复制相似问题