使用VBA对结果进行sorting和分组

我对Excel VBA有点新鲜。 我正在处理现有的Excel工作表,通过存储过程从SQL Server表中检索数据。 它目前只是在电子表格中显示数据。 我希望能够通过一个值(0或1)进行sorting,并将结果打印为组,然后将组0,然后组1,并重复组之间的标题。 谢谢

请求SQL为您执行此操作:更改服务器上的存储过程以允许sorting参数。

或者,也可以将存储过程的结果存储在表variables中,并将结果sorting(如果不允许更改存储过程,则可以这样工作:

declare @t table ( Column1 int, Column2 bit, Column3 nvarchar(100), Column4 nvarchar(100), Column5 nvarchar(100), Column6 int, Column7 nvarchar(100), Column8 nvarchar(max), Column9 bit ) insert into @t exec sys.sp_who select * from @t as t order by Column3 

按照你的评论的要求,我详细解释了一下答案。 上面的代码是T-SQL: https : //en.wikipedia.org/wiki/Transact-SQL如果你想学习SQL,那么下面的网站可以有很大的帮助: http : //www.w3schools.com/ SQL / Default.asp的

基本上,T-SQL(上面的代码)就是你发送给SQL Server的信息,以便告诉服务器你想要检索哪种数据。 换句话说,这就是Excel发送给服务器并获取数据的方式。 有几种不同的方式来实现这一点:

  1. 第一种可能性是直接使用Excel中的“ Data选项卡,如以下文章中所述: http : //kildrummy.com/how-to-pulling-export-data-into-excel/请注意,屏幕截图的底部该窗口称为Connection Properties 。 您可以清楚地看到Command Type被设置为SQL,而Command Text是SQL代码(就像我上面给出的例子)。
  2. 从SQL Server获取数据的第二个选项是VBA。 下面的问答是一个例子:如何实现: 在Excel-VBA中访问SQL数据库再一次,你可以在VBA中注意到VBA代码中的`strSQL'string,它包含了发送到SQL Server的SQL命令。