在excel vba中对Web查询结果进行排序

时间:2011-09-13 18:19:50

标签: excel excel-vba vba

我有一个webquery,我通过刷新查询开始的单元格来调用。如下所示:

Sheets(sheetBeingProcessed).Range(queryAdr).QueryTable.Refresh BackgroundQuery:=False

我使用vba刷新它,一次点击,我的宏遍历所有工作表,逐个刷新它们,每一个每天都返回不同的数据行(有时是0行),这一切都是可以接受的,所有的外观好。

现在,我想按每张表的“成熟日期”列对结果进行排序。知道我该怎么做吗?

2个困难是,1如何判断“到期日”栏目的位置,这很容易。 第二个问题......我怎样才能对得到的结果进行排序?

我尝试激活每个工作表并选择范围和排序,但这不起作用

ActiveWorkbook.Worksheets(sheet).Activate
ActiveWorkbook.Worksheets(sheet).Range(sortStartAddress).Select
Dim resultRange As Variant

Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Set resultRange = ActiveWorkbook.ActiveSheet.Selection

下面的最后一行是失败的......

我确信必须有一种更清洁的方式,不要在工作表之间翻转,激活它们并选择范围......看起来很难看......有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我不你必须激活每张工作表才能对它们进行排序。

此外,您应该可以使用CurrentRegion选项选择整个区域。看看这是否适用于您正在尝试的内容:

ActiveWorkbook.Worksheets(sheet).Range(sortStartAddress).Select
Dim resultRange as Range
set resultRange = selection.CurrentRegion.Select

答案 1 :(得分:1)

ActiveWorkbook.Worksheets(sheet).Range(sortStartAddress).CurrentRegion.Sort 'add sort options...