Usuário com melhor resposta
Dúvida On error resume Next

Pergunta
-
Estou com uma dúvida: tenho uma macro que irá sempre excluir algumas colunas de uma tabela dinâmica (conforme mostra o código abaixo), porém nem sempre haverá todas elas, assim utilizar esse código é passível de erro.A minha dúvida é, como eu utilizo o On Error Resume Next para funcionar corretamente?
(1, 2,...; são colunas exluídas).
With ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("Dep.")
.PivotItems("1").Visible = False
.PivotItems("2").Visible = False
.PivotItems("3").Visible = False
.PivotItems("4").Visible = False
.PivotItems("5").Visible = False
.PivotItems("6").Visible = False
.PivotItems("7").Visible = False
.PivotItems("8").Visible = False
.PivotItems("(blank)").Visible = False
End With
Respostas
-
O uso do comando On Error Resume Next resume-se a aplicação de alguma exceção que o seu algoritmo possa executar e o mesmo não precise necessariamente de ser tratado, pois é um erro previsto. Uma outra boa pratica é você tratar o erro através do código do erro retornado. Exemplo:
Você cria uma sintaxe logo abaixo da abertura da Sub Rotina ou de uma Função?
Sub Exemplo()
On Error Goto TratarErro
'Local de seu algoritmo
Exit Sub
TratarErro:
If Err.Number = 1004 then
Resume Next
Else
MsgBox Err.Number & "-" & Err.Description
End If
End Sub
- Sugerido como Resposta Hezequias VasconcelosModerator terça-feira, 11 de setembro de 2012 16:03
- Marcado como Resposta Hezequias VasconcelosModerator quarta-feira, 12 de setembro de 2012 11:14
-
On Error Resume Next With ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("Dep.") .PivotItems("1").Visible = False .PivotItems("2").Visible = False .PivotItems("3").Visible = False .PivotItems("4").Visible = False .PivotItems("5").Visible = False .PivotItems("6").Visible = False .PivotItems("7").Visible = False .PivotItems("8").Visible = False .PivotItems("(blank)").Visible = False End With On Error GoTo 0
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Sugerido como Resposta Hezequias VasconcelosModerator terça-feira, 11 de setembro de 2012 16:02
- Marcado como Resposta Hezequias VasconcelosModerator quarta-feira, 12 de setembro de 2012 11:15
Todas as Respostas
-
O uso do comando On Error Resume Next resume-se a aplicação de alguma exceção que o seu algoritmo possa executar e o mesmo não precise necessariamente de ser tratado, pois é um erro previsto. Uma outra boa pratica é você tratar o erro através do código do erro retornado. Exemplo:
Você cria uma sintaxe logo abaixo da abertura da Sub Rotina ou de uma Função?
Sub Exemplo()
On Error Goto TratarErro
'Local de seu algoritmo
Exit Sub
TratarErro:
If Err.Number = 1004 then
Resume Next
Else
MsgBox Err.Number & "-" & Err.Description
End If
End Sub
- Sugerido como Resposta Hezequias VasconcelosModerator terça-feira, 11 de setembro de 2012 16:03
- Marcado como Resposta Hezequias VasconcelosModerator quarta-feira, 12 de setembro de 2012 11:14
-
On Error Resume Next With ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("Dep.") .PivotItems("1").Visible = False .PivotItems("2").Visible = False .PivotItems("3").Visible = False .PivotItems("4").Visible = False .PivotItems("5").Visible = False .PivotItems("6").Visible = False .PivotItems("7").Visible = False .PivotItems("8").Visible = False .PivotItems("(blank)").Visible = False End With On Error GoTo 0
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Sugerido como Resposta Hezequias VasconcelosModerator terça-feira, 11 de setembro de 2012 16:02
- Marcado como Resposta Hezequias VasconcelosModerator quarta-feira, 12 de setembro de 2012 11:15