0

私はこの小さな手順をより大きなプロジェクトの一部として作成し、コードを実行する前に最後のアクティブなセルを再アクティブ化することで、より使いやすくしたいと考えました。ただし、実行時エラー 1004: オブジェクト '_Global' のメソッド 'range' が失敗しました。

以前の ActiveWorksheet を再アクティブ化することができましたが、実際のセルを再アクティブ化するにはどうすればよいですか? 私はここで議論を見ました:実行時エラー '1004': オブジェクト '_Global' のメソッド 'Range' が失敗しました

問題は を参照する方法にあると思いましたが、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
4

1 に答える 1