在Excel 2007中使用UDF中的表

我正在写一个UDF的Excel 2007,我想传递一个表,然后在UDF中引用该表的部分。 所以,比如我的表格叫做“Stock”可能看起来像这样:

名称中的成本项目

玩具熊£10 10

棒棒糖20p 1000

我有一个UDF,我想要计算剩余库存中所有项目的总成本(实际的例子要复杂得多,如果没有非常复杂的公式,就不能真正做到)

理想情况下,UDF的语法看起来像这样

TOTALPRICE(Stock) 

从我的工作中可以看出,UDF将会有签名

 Function TOTALPRICE(table As Range) As Variant 

我遇到的麻烦是如何引用表的列并遍历它们。 理想情况下,我希望能够引用列标题(所以像表[成本])。

这是非常基本的(没有双关语意思),但它会做你所描述的。 对于较大的表,它可能会变慢,因为在macros函数和工作表之间来回切换,而这种活动加起来。

它假设您有一行标题和一列名称(因此For循环variables从2开始)。

有各种各样的事情可能是必要的 – 我们可以把这些问题或另一个问题保存在这个问题上。

请注意,该函数返回一个“变种”,顺便说一句…

 Public Function TotalPrice(table As Range) As Variant Dim row As Long, col As Long Dim total As Double For row = 2 To table.Rows.Count For col = 2 To table.Columns.Count TotalPrice = TotalPrice + table.Cells(row, col) * table.Cells(row, col + 1) Next Next End Function 

注意:我没有Excel 2007,我正尝试在networking上使用MSDN文档编写此文档。
看起来像范围将有ListColumns集合

所以,语法可以是table.ListColumns(“Cost”)。
这是否工作?