我有一个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
下面的最后一行是失败的......
我确信必须有一种更清洁的方式,不要在工作表之间翻转,激活它们并选择范围......看起来很难看......有什么想法吗?
答案 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...