Notifications
Clear all

O que há de errado neste Range?

8 Posts
3 Usuários
2 Reactions
1,301 Visualizações
cacilds
(@cacilds)
Posts: 20
Eminent Member
Topic starter
 

Olá a todos os colegas!

Usava em minha macro este comando para "limpar" a minha planilha rascunho antes de continuar a execução da macro:
Application.Workbooks(2).Worksheets(1).Range("A:AH").ClearContents

Mas por uma questão de programação substituí por esta, com suas devidas variáveis:
Application.Workbooks(2).Worksheets(1).Range(Cells(1, 1), Cells(var1, (var2 + 22))).ClearContents

Entretanto esta segunda linha dá erro em tempo de execução no atributos do comando Range. Afinal, alguém poderia me dizer o que há de errado aqui?

Agradeço muito pela ajuda!

Este tópico foi modificado 2 anos atrás 2 vezes by cacilds
 
Postado : 02/12/2022 2:24 pm
(@osvaldomp)
Posts: 857
Prominent Member
 

Embora tenha um par de parênteses desnecessário, em vermelho ~~~> Cells(1, 1), Cells(var1, (var2 + 22)))

o comando está correto. Verifique como estão declaradas var1 e var2 e os seus valores ao provocar o erro.

Osvaldo

 
Postado : 02/12/2022 8:04 pm
cacilds reacted
cacilds
(@cacilds)
Posts: 20
Eminent Member
Topic starter
 

Obrigado pela ajuda Osvaldomp!

Eu substituí para uma opção mais "esperta" por não gostar muito do formato "colunainicial:colunafinal" devido a coluna final variar conforme o andamento mas, pelo visto, terei que continuar usando.

 

Vi, revi, e não encontrei NENHUMA razão do erro ocorrer! E quer saber do pior? Em algumas ocasiões o comando passava durante a execução, em outras não. Como não ficar P***?

 
Postado : 02/12/2022 9:41 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Veja se o valor de var1 não está com valor zero no momento que chega nesse ponto, @cacilds...

Ou células bloqueadas em planilha protegida...

A propósito, qual a mensagem de erro?

 
Postado : 02/12/2022 10:01 pm
cacilds reacted
cacilds
(@cacilds)
Posts: 20
Eminent Member
Topic starter
 

@edsonbr Rodei a macro novamente, com o computador focado nisto para tentar acontecer o que ocorre.

"Erro 1004: Erro de definição de aplicativo ou definição de objeto"

E lhe asseguro que nenhuma das variáveis tem o valor zero!

Uma observação que faço agora, e que não tinha me atentado antes, é que no comando citado:
Application.Workbooks(2).Worksheets(1).Range(Cells(1, 1), Cells(var1, var2 + 22)).ClearContents
é que var1 é Long e var2 é Byte. Será que tem alguma coisa a ver?

Este post foi modificado 2 anos atrás por cacilds
 
Postado : 06/12/2022 6:55 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 
Postado por: @cacilds

...é que var1 é Long e var2 é Byte. Será que tem alguma coisa a ver?

Só se o valor de var2 em tempo de execução for maior que 255...

Não seria mais fácil anexar seu modelo antes (limpando o que for confidencial/desnecessário)?

 
Postado : 06/12/2022 11:17 pm
cacilds
(@cacilds)
Posts: 20
Eminent Member
Topic starter
 

@edsonbr Não, o valor é 12 e ele é constante. Outra observação é que ele dá erro com Clear ou ClearContents, mas com ColumnWidth (puramente estético) funciona sem problemas!

Este post foi modificado 2 anos atrás por cacilds
 
Postado : 07/12/2022 10:40 am
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Não tem células mescladas nesse intervalo? Intervalo bloqueado em planilha protegida? O intervalo por acaso não contém fórmulas matriciais que abrangem células dentro e fora do intervalo a ser limpo? Tem muitas hipóteses, mas assim só pelo fragmento de código VBA apresentado fica mais difícil diagnosticar.

 
Postado : 07/12/2022 7:53 pm