使用chrome扩展程序'Webscraper.io',我经常搜索政府网站以跟踪更新的项目费用。虽然它在操作上非常有效,但它没有以我提供输入Url的相同顺序返回数据。更奇怪的是,每次运行任务时,即使源完全相同,它也会选择不同的顺序。假设,如果我运行5个url的任务两次,输出将是(没有特定的随机顺序):
(Day 1) Output (Day 2) Output
Url 2 $500 Url 3 $478
Url 4 $867 Url 1 $637
Url 1 $928 Url 4 $102
Url 3 $109 Url 5 $942
Url 5 $208 Url 2 $296
它将不同日期的数据并排比较,这对我来说是一项非常繁琐的工作。那么,有没有办法根据工作表1的排序顺序对工作表2的列进行排序?对两张纸进行按字母顺序排序绝对是一种选择,但它会破坏我的原始订单(这是部门明智的)。理想情况下,我想将所有日子的B列粘贴到我的原始工作表&然后比较变化。
答案 0 :(得分:0)
您可能希望使用Sort
对象的Range
方法及其OrderCustom
参数
Sub SortByUrls()
Dim rngToSort As Range, keysToSort As Range
With Worksheets("Urls") '<--| change "Urls" with your actual sheet name
Set rngToSort = .Range("C2:D6") '<--| range to be sorted
Set keysToSort = .Range("C2") '<--| first cell of the column to sort
Application.AddCustomList ListArray:=.Range("A2:A6").value '<--| add your sorting custom list as the previous Url names range
.sort.SortFields.Clear '<--| clear any preceeding sorting settings
rngToSort.sort Key1:=keysToSort, Order1:=xlAscending, header:=xlGuess, _
OrderCustom:=Application.CustomListCount + 1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
Application.DeleteCustomList Application.CustomListCount '<--| delete your sorting custom list
End With
End Sub