【发布时间】:2021-11-30 01:21:03
【问题描述】:
我正在尝试对之前设置的范围进行排序,但它不起作用,而且我无法找到问题所在。因此,欢迎任何帮助
我的程序对特定工作表中的所有数据进行排序,然后根据条件设置范围。
Sub References_Sort()
' Activate Worksheet
Dim ws As Worksheet
Set ws = Application.ThisWorkbook.Worksheets("Hoja2")
ws.Activate
'Set variables
Dim LastColumn, LastRow, FirstRow As Integer
Dim rngCom As Range
Dim i As Long
'Sort the rows based on the data in column E
ws.Columns("A:I").Sort _
key1:=Range("E2"), _
order1:=xlAscending, _
Header:=xlYes
'Find which is the last row and last column with data
LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
With ws
'Find first row with value=5 in column E
FirstRow = .Range("E:E").Find(What:=5, After:=.Range("E1")).Row
' Set range which includes data with value=5 in column E
Set rngCom = .Range(Cells(FirstRow, "A"), Cells(LastRow, LastColumn))
'Sort set range based on the data in column B
rngCom.Sort _
key1:=Range("B2"), _
order1:=xlAscending, _
Header:=xlYes
End With
End Sub
【问题讨论】:
-
哪一部分“不起作用”?你有错误吗?你有没有尝试通过它来观察它在做的时候做了什么?
-
嗨@braX。执行代码时不会出现任何错误。看起来它工作得很好,但是它不会对
rngCom中包含的数据进行排序。因此,除了这部分代码之外,似乎一切都按预期工作:``` '根据 B 列中的数据对集合范围进行排序 rngCom.Sort _ key1:=Range("B2"), _ order1:=xlAscending, _标头:=xl是``` -
代码运行时,
Range("B2")的计算结果是否符合您的预期?