是否可以为Excel 2007编写dset函数

时间:2013-02-22 19:23:40

标签: excel excel-vba excel-2007 vba

我正在开发一个可以从dset函数或visual basic脚本中受益的excel项目。我所设想的是一个类似于excel的dget数据库函数的函数,但它不是从满足条件的数据库/表中获取数据,而是将数据设置/插入符合条件的交集处的表中。我有一个相当大的数据集,所以功能需要高效。

我的表格将具有与此类似的结构:enter image description here

我希望能够做类似的事情:

dset(NetSales,Actual,FY10,Jan,Jan_Fcst_Amt,1000)  

其中1000是我正在设置的值。

我的目标是能够提取预测方案,将其输入到表中,然后该表用作数据透视表的数据源。

有没有人做过这样的事情。什么是最好的方法。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

这是一种可行的方法:

创建一个隐藏列,用于连接用于选择行的列(不要忘记字段分隔符),例如: =A2 & "|" & B2 & "|" & C2 & "|" & D2

在VBA函数中,使用Application.WorksheetFunction.Match()查找复合列中行搜索字段串联的偏移量。

然后使用Application.WorksheetFunction.Match()查找列搜索字段的偏移量。

您可以使用ActiveSheet.Cells(x,y).Formula=z设置所需的单元格。

这种方法最大限度地利用了Excel的内置函数,这些函数应该比你在VBA中编写的任何函数都快。