VBA работает на моем компьютере, но не на других выдает ошибку 438 - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть макрос, который я создал, чтобы снять защиту листа, отменить выбор пробелов, отсортировать столбец, повторно применить пробелы, а затем снова защитить лист.Код отлично работает на моем компьютере, но когда я пытаюсь открыть его на других компьютерах, я получаю

код ошибки 438.

ПРИМЕЧАНИЕ: мне нужно выбрать пробелыпотому что я пытаюсь отсортировать столбцы с формулой.Столбцы не будут сортироваться правильно, потому что формула отображает пробелы в областях, где информация отсутствует.

Все компьютеры имеют одинаковую операционную систему, одну и ту же версию Excel, и файл сохраняется на общем диске, поэтому ничего не должно меняться.Я убедился, что я включил макросы на каждом компьютере, но он все еще не работает.

Ниже приведен код.Кто-нибудь видит какие-то явно очевидные проблемы, которые мне не хватает?Я новичок в VBA и макросах, но я довольно много читал и исследовал и, похоже, не могу понять это.

Ниже приведен обновленный код:

Sub Short2Long()
'
' Short2Long Macro
'

'
    Worksheets("Reunification").Unprotect
    Worksheets("Reunification").ListObjects("Reunification_Main").Range.AutoFilter Field:=1, _
        Criteria1:="<>"
    ThisWorkbook.Worksheets("Reunification").ListObjects("Reunification_Main"). _
        Sort.SortFields.Clear
    ThisWorkbook.Worksheets("Reunification").ListObjects("Reunification_Main"). _
        Sort.SortFields.Add2 Key:=Range("Reunification_Main[[#All],[Days in Care]]") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortTextAsNumbers
    With ThisWorkbook.Worksheets("Reunification").ListObjects( _
        "Reunification_Main").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Worksheets("Reunification").ListObjects("Reunification_Main").Range.AutoFilter Field:=1
    Worksheets("Reunification").Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, AllowFormattingColumns:=True, AllowFormattingRows:=True, _
        AllowSorting:=True, AllowFiltering:=True

1 Ответ

0 голосов
/ 22 февраля 2019

Наконец-то разобрался с проблемой.Это было связано с проблемами Excel 365 и 2010.

Excel 365 ожидает:

Sort.SortFields.Add2

Но Excel 2010 ожидает:

Sort.SortFields.Add

Удаление 2 решило проблемунесмотря на то, что на всех компьютерах работал Excel 365.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...