作为一个更大项目的一部分,我编写了这个小程序,并希望通过在运行代码之前重新激活最后一个活动单元格来使其更加用户友好。但是,它给了我运行时错误 1004:对象“_Global”的方法“范围”失败。
我设法重新激活了以前的 ActiveWorksheet,但是如何让它重新激活实际的单元格?我在这里查看了讨论:运行时错误'1004':对象'_Global'的方法'范围'失败
这使我认为问题出在我引用 的方式上OldActiveCell
,但我仍然找不到解决方案。
有谁知道这个问题的答案?下面的代码:
Sub SortData()
'Sorts Data on Input Sheet; first after project ID and then position type
Dim DataRange As Range
Dim OldActiveSheet As Object
Dim OldActiveCell As Object
'Define variable for currently active cell to reactivate it afterwards
Set OldActiveSheet = ActiveSheet
Set OldActiveCell = ActiveCell
Sheets("Input").Activate
Range("DataRange").Activate
ActiveSheet.Sort.SortFields.Clear
'First filter criterium
ActiveSheet.Sort.SortFields.Add Key:=Range("ProjectList") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
'Second filter criterium
ActiveSheet.Sort.SortFields.Add Key:=Range("PositionType") _
, SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
'Loop through and sort
With ActiveSheet.Sort
.SetRange Range("DataRange")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Reactivate previous active cell
Range("OldActiveSheet.OldActiveCell").Activate
End Sub