Ошибка выполнения 1004 при использовании Auto_Open () в Excel - PullRequest
0 голосов
/ 01 ноября 2018

Итак, я создал простой макрос, который перебирает все таблицы и автоматически подгоняет все столбцы. Он работает, когда я запускаю его вручную, но я хочу, чтобы он запускался каждый раз, когда я автоматически запускаю Excel. Я поместил его в модуль и назвал sub Auto_Open(). Проблема в том, что я получаю

«Ошибка времени выполнения« 1004 »: метод« Рабочие листы »объекта« _Global »не выполнен.»

каждый раз, когда я запускаю Excel сейчас.

Вот код. Отладчик говорит, что это часть For Each, которая вызывает проблему, но я не понимаю, почему. Что мне не хватает? Спасибо за любую помощь.

Sub AUTO_OPEN()
'
' AutoFit_All_Columns Macro
'

Dim ws As Worksheet

For Each ws In Worksheets
    ws.UsedRange.Columns.AutoFit
Next ws

End Sub

Ответы [ 3 ]

0 голосов
/ 01 ноября 2018

Я думаю, вам нужно использовать ActiveWorkbook. Попробуйте этот код:

Sub AUTO_OPEN()
    '
    ' AutoFit_All_Columns Macro
    '

    Dim ws As Worksheet

    For Each ws In ActiveWorkbook.Worksheets
        ws.UsedRange.Columns.AutoFit
    Next ws

End Sub
0 голосов
/ 01 ноября 2018

Я нашел альтернативу, используя метод Workbook_Open, который, кажется, работает отлично. Поместив это в раздел «ThisWorkbook» встроенного Personal VBAProject, при каждом открытии книги автоматически запускается автозаполнение всех столбцов.

Option Explicit
Private WithEvents App As Application

Private Sub Workbook_Open()
    Set App = Application
End Sub

Private Sub App_WorkbookOpen(ByVal WB As Workbook)

    Dim ws As Worksheet
    For Each ws In WB.Worksheets
        ws.Columns.AutoFit
    Next ws

End Sub
0 голосов
/ 01 ноября 2018

For Each ws In ThisWorkbook.Worksheets

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