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