1

Тема: VBA: Ексель - Данные - Подключения - Обновить данные (Макрос)

Доброе время суток. Помогите пожалуйста уже целый день ломаю голову над проблемой.
1. Общее пояснения:
Есть 2 документа (их будет больше). 1 файл Расчеты, 2 файл Бумага.
Файл Расчеты получает данные с файла Бумага по нажатию кнопки ДАННЫЕ- Подключения - Обновить данные. Все хорошо это все есть. Но загвоздка в том что к файлу Расчеты не все должны иметь доступ, то есть на редактирование получается я его блокирую функцией РЕЦЕНЗИРОВАНИЕ - Защитить лист (пароль admin).
2. Макросная часть:
Так как файл в ручную менять нельзя, использую такой макрос.

    .Sub RefreshData1()
        ActiveSheet.Unprotect Password:="admin"
        ActiveWorkbook.RefreshAll
    End Sub
    .Sub RefreshData2()
        ActiveSheet.Protect Password:="admin", DrawingObjects:=True, Contents:=True, Scenarios:=True
    End Sub

Вот если выполнять эти команды отдельно то они работают, но все бы ничего но надо что-бы Unprotect, RefreshAll и Protect выполнялся в одной команде. Написал макрос (обледенил 2 кода)

    .Sub RefreshData3()
        ActiveSheet.Unprotect Password:="admin"
        ActiveWorkbook.RefreshAll
        ActiveSheet.Protect Password:="admin", DrawingObjects:=True, Contents:=True, Scenarios:=True
    End Sub

Но этот макрос не работает.

2

Re: VBA: Ексель - Данные - Подключения - Обновить данные (Макрос)

lukas_endigo_91 пишет:

Вот если выполнять эти команды отдельно то они работают

При выполнении из одного и того же документа?

3 (изменено: lukas_endigo_91, 2015-11-16 15:19:18)

Re: VBA: Ексель - Данные - Подключения - Обновить данные (Макрос)

Flasher
да, пробовал его переключит даже на с Лист1 на Документ.