Метод сортировки класса Range не работает только на некоторых компьютерах, имеющих доступ к сетевому файлу - PullRequest
0 голосов
/ 19 марта 2020

Надеюсь, это не станет следствием sh нормальных ошибок с Range и Sort. У меня есть книга, которая была полностью функциональной и хранится в сетевом хранилище. P C, который в основном обращался к файлу, всегда мог полностью использовать рабочую книгу и запускать Excel 2013. В выходные мы тестировали развертывание Office 365, которое нам пришлось повернуть вспять. На P C был установлен, удален Office 365 и переустановлен Office 2013 со всеми необходимыми пакетами VB. Теперь, когда этот P C пытается работать с книгой, этот код:

ActiveWorkbook.Sheets("Sales Log").Columns("A:P").Sort key1:=Sheets("Sales Log").Range("A1"), order1:=xlAscending, Header:=xlYes

Бросает страшное «Ошибка времени выполнения 1004 Сортировка метода класса Range не удалась»

Книга все же 100% работает с другого P C, который никогда не имел развертывания 365 и не имел никаких изменений конфигурации. Я в полной растерянности. Кто-нибудь может посоветовать? Спасибо!

Вот вся подпрограмма в соответствии с запросом: (сортирует список и обновляет сводную таблицу)

Private Sub Worksheet_Activate()

    Dim activeFileName As String

    If ActiveWorkbook.Sheets("Control").Range("B17").Value = "Undeployed" Then
        Exit Sub
        Else:
    End If

    Worksheets("Sales Log").Unprotect
    If ActiveWorkbook.Sheets("Control").Range("B15").Value = "Single" Then
        ActiveWorkbook.Sheets("Sales Log").Columns("A:O").Sort key1:=Sheets("Sales Log").Range("A1"), order1:=xlAscending, Header:=xlYes
        Else:
        ActiveWorkbook.Sheets("Sales Log").Columns("A:P").Sort key1:=Sheets("Sales Log").Range("A1"), order1:=xlAscending, Header:=xlYes
    End If
    Worksheets("Sales Log").Protect

    ActiveWorkbook.Sheets("Tables").PivotTables("PivotTable1").RefreshTable

    activeFileName = ActiveWorkbook.Worksheets("Control").Range("B16").Value
    'Make sure your working file is not an autobackup or restore file
    If activeFileName <> ActiveWorkbook.Name Then
        Call wrongWorkingFile(activeFileName)
    End If

    Application.CutCopyMode = False

End Sub
...