Excel VBA“Group by”式select

我想从SQL工作表中获取数据。 意思是,我有以下列: code, type, name, product_code, price, quantity

我想要做的是从这张表中获取数据,就像它是一个数据库表,我执行以下操作:

 select code, type, name, product_code, sum(price), sum(quantity) from table group by code, type, name, product_code 

我如何在VBA中做到这一点?

code, type, name, product_code对数据进行code, type, name, product_code ,然后编写一个循环,循环遍历表单中的每一行,然后聚合。 当这四个字段中的任何一个改变了值时,你都在一个新的组中,所以把你当前的聚合写出来,并在当前行中重新开始。

据我所知,没有办法在VBA中的Excel工作表上编写SQL; 你只要自己写循环。

就个人而言,我会避免VBA和使用数据透视表。

您可以使用Access SQL查询工作表,例如使用ADO classic 。 但是,由于数据types是在运行时使用数据和registry键的当前状态确定的(这可能会导致值被强制为错误的types和/或值不能被强制使用),因此导入将数据放入SQL数据库中的表中,以便可以在devise时指定数据types,SQL Server非常适合。

用于Excel的SQLite将允许您在内存中执行此操作。 我不确定LINQ为.NET提供了什么,但似乎可以使用SQLite模拟其中的一些。 我只是用它来validation它的工作,但还没有围绕它build立一个实用程序类。