Não é possível definir a folha ativa em aberto

1

Eu tenho uma pasta de trabalho com várias planilhas (guias). Adicionei o código abaixo em uma tentativa de mostrar a guia "Painel de controle" toda vez que alguém abre a planilha.

Private Sub Workbook_Open()
    ActiveWorkbook.Sheets("Dashboard").Activate
End Sub

Quando abro a planilha, sou apresentado com o banner PROTECTED VIEW . Clico em "Ativar edição" e obtenho o seguinte erro:

Eutambémtenteioutraopçãocombasena documentação no MSDN :

Private Sub Workbook_Open()
    Worksheets("Dashboard").Activate
End Sub

Isso resultou em outro erro:

    
por Scott Beeson 23.12.2015 / 19:30

2 respostas

1

Aparentemente, esse problema conhecido afeta a edição do Excel 2013 Office 365 e é a causa dos meus problemas.

A correção é mover Activate para o evento Workbook_Activate() em vez de Workbook_Open() :

Private Sub Workbook_Activate()
  Sheet1.Activate
End Sub

Private Sub Workbook_Open()

End Sub

Tudo funciona bem agora.

    
por 23.12.2015 / 20:49
3

Isso vem principalmente porque a pasta de trabalho não está "pronta" para ser executada. Mas você pode usar um truque aqui:

No módulo:

Public Sub InitActive()
  ActiveWorkbook.Sheets("Dashboard").Activate
End Sub

E altere sua macro inicial para:

Private Sub Workbook_Open()
  Application.OnTime Now, "InitActive"
End Sub

Application.OnTime silenciosamente espera até que o excel diga que ele está "pronto" ... desta forma nenhum erro deve aparecer ... Ainda assim você deve usar o nome do código como Sheet3.Activate (se você entende o que eu quero dizer)

    
por 23.12.2015 / 20:31