código de caso próprio VBA

0

Alguém pode explicar por que esse código retorna um erro de tempo de execução'91 '?

Dim rng As Range, cell As Range

Set rng = Selection

For Each cell In rng

Next cell

If Not cell.HasFormula Then

End If

cell.Value = WorksheetFunction.Proper(cell.Value)
    
por Corrado_ 06.12.2016 / 15:02

1 resposta

2

For Each cell In rng

Next cell

Isso percorre cada elemento do intervalo selecionado e faz ... nada. Quando o loop é concluído, ou seja, o código percorreu cada elemento, o valor armazenado no objeto cell é limpo.

If Not cell.HasFormula Then

End If

Agora, cell é uma variável vazia, ou seja, seu valor é Nothing . Nothing não tem nenhuma propriedade, especificamente, não tem HasFormula property

O código que eu acho que você quer é:

For Each cell In rng
    If Not cell.HasFormula Then
        cell.Value = WorksheetFunction.Proper(cell.Value)
    End If
Next cell

Devo acrescentar que não verifiquei se esse código realmente será executado. É apenas a ordem "correta" de execução dos comandos que você escreveu.

    
por 06.12.2016 / 15:29