2014-01-29 3 views
0

У меня есть этот макрос для кнопки, чтобы обновить все шарнирные столы в листе:Обновить защищенный поворотный стол кнопкой?

Sub Button3_Click() 
ThisWorkbook.RefreshAll 
End Sub 

И я хотел бы добавить функциональность, чтобы обновить все сводные таблицы, даже если они находятся на защищенном листе. Я защищала поворотный стол лист с паролем MyPwd и используется код, приведенный ниже, но это не будет работать:

Sub Button3_Click() 
Unprotect Password:="MyPwd" 
ThisWorkbook.RefreshAll 
Protect Password:="MyPwd", _ 
DrawingObjects:=True, Contents:=True, _ 
Scenarios:=True, AllowUsingPivotTables:=True 
End With 
End Sub 

Visual Basic это все ново для меня. Что я делаю не так?

ответ

0

Спасибо @ BK201 за то, что у него есть трещина, вы определенно указали мне в правильном направлении. Я использовал этот код в кнопке, и это, казалось, сделать трюк:

Sub Button1_Click() 


Dim Sht As Worksheet 

For Each Sht In ThisWorkbook.Worksheets 
Sht.Unprotect Password:="MyPwd" 
ThisWorkbook.RefreshAll 

Next 

For Each Sht In ThisWorkbook.Worksheets 
Sht.Protect Password:="MyPwd" 
Next 

End Sub 
1

Unprotect Вы хотите, чтобы это был рабочий лист. Вы должны это квалифицировать.

Sub ProtRef() 
    Dim TargetSht As Worksheet 
    Set TargetSht = ThisWorkbook.Sheets("Sheet1") 'Modify as needed. 

    With TargetSht 
     .Unprotect MyPwd 
     ThisWorkbook.RefreshAll 
     .Protect MyPwd 
    End With 
End Sub 

Примечание TargetSht и With-End With. Сообщите нам, если это поможет.

EDIT:

Sub ProtRef() 

    Dim WB As Workbook, WS As Worksheet 

    For Each WS In WB.Worksheets 
     If WS.Name <> "Sheet1" Then 
      WS.Unprotect MyPwd 
     End If 
    End With 

    ThisWorkbook.RefreshAll 

    For Each WS In WB.Worksheets 
     If WS.Name <> "Sheet1" Then 
      WS.Protect MyPwd 
     End If 
    End With 

End Sub 

паста в обычном модуле, как показано ниже:

enter image description here

Дайте нам знать, если это помогает.

+0

У меня есть несколько листов с шарнирными столами и кнопка находится на другой лист без поворотных столов. Нужно ли щелкнуть правой кнопкой мыши по одному из листов сводной таблицы, выбрать код просмотра и ввести этот код? Или я помещаю его в лист с помощью кнопки? Большое вам спасибо за помощь. – user1721230

+0

. Какое имя незащищенного листа (лист без сводной таблицы и с кнопкой)? – Manhattan

+0

sheet1 и сводные таблицы находятся на sheet3, sheet4, sheet5 – user1721230

Смежные вопросы