Vba: verifique se a pasta de trabalho está aberta (com exemplo)


Você pode usar a seguinte sintaxe no VBA para verificar se uma pasta de trabalho específica está aberta no momento.

 SubCheckWorkbookOpen ()

Dim resultCheck As Boolean
Dim wb As Workbook
Dim specific_wb As String
    
On Error Resume Next
specific_wb = InputBox("Check if this workbook is open:")
    
Set wb = Application.Workbooks.Item(specific_wb)
resultCheck = Not wb Is Nothing

If resultCheck Then
    MsgBox “Workbook is open”
Else
MsgBox “Workbook is not open”
End If
    
End Sub

Quando esta macro for executada, aparecerá uma caixa de entrada onde um usuário pode digitar o nome de uma pasta de trabalho do Excel e a macro produzirá uma caixa de mensagem com um dos seguintes resultados:

  • “O arquivo está aberto”
  • “O arquivo não está aberto”

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: como verificar se a pasta de trabalho está aberta usando VBA

Digamos que atualmente temos duas pastas de trabalho abertas com os seguintes nomes:

  • minha_pasta de trabalho1.xlsx
  • minha_pasta de trabalho2.xlsx

Digamos que queremos verificar se a pasta de trabalho chamada my_workbook1.xlsx está aberta no momento.

Podemos criar a seguinte macro para fazer isso:

 SubCheckWorkbookOpen ()

Dim resultCheck As Boolean
Dim wb As Workbook
Dim specific_wb As String
    
On Error Resume Next
specific_wb = InputBox("Check if this workbook is open:")
    
Set wb = Application.Workbooks.Item(specific_wb)
resultCheck = Not wb Is Nothing

If resultCheck Then
    MsgBox “Workbook is open”
Else
MsgBox “Workbook is not open”
End If
    
End Sub

Depois de executar esta macro, aparecerá uma caixa onde posso digitar my_workbook1.xlsx na caixa de entrada:

Depois de clicar em OK , a macro produzirá a seguinte caixa de mensagem:

A macro exibe corretamente “A pasta de trabalho está aberta” para indicar que uma pasta de trabalho com esse nome está aberta no momento.

Agora, suponha que eu digitei o nome de uma pasta de trabalho que não está aberta no momento:

Depois de clicar em OK , a macro produzirá a seguinte caixa de mensagem:

A macro exibe corretamente “A pasta de trabalho não está aberta” para indicar que uma pasta de trabalho com esse nome não está aberta no momento.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em VBA:

VBA: Como contar o número de planilhas em uma pasta de trabalho
VBA: como inserir múltiplas colunas
VBA: como inserir múltiplas linhas

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *