Notifications
Clear all

[Resolvido] Erro Next sem For

2 Posts
2 Usuários
1 Reactions
590 Visualizações
(@goldmaner)
Posts: 1
New Member
Topic starter
 

Olá tudo bem?

Gente, estava tentando criar um macro para excluir determinado conteúdo de célula, de acordo com o critério estabelecido. Vi um vídeo no Youtube, fiz passo a passo, mas infelizmente fica dando o erro "Next sem For". Eu entendo pouquíssimo de VBA, mas o mesmo código não dá erro no vídeo. Segue o código, e o vídeo:

https://www.youtube.com/watch?v=j-iP_PQVUhI&t=615s&ab_channel=AlessandroTrovato

Como retificar, pra que o botão funcione?

Option Explicit

Private Sub btExecuta_Click()


Dim W As Worksheet
Dim vRNG As Range
Dim vcel As Range
Dim vpos As Long
Dim vtexto As String

Set W = Planilha2
W.Select

Set vRNG = W.UsedRange
vtexto = InputBox("Qual é a palavra que deve ser excluída?")

If Not vtexto = Empty Then

    For Each vcel In vRNG

        vcel.Select
        vpos = InStr(1, UCase(vcel.Value), UCase(vtexto))
        
        
        If vpos > 0 Then
        
            vcel.Value = Trim$(Mid$(vcel.Value, 1, vpos + Len(vtexto)))
            
    Next vcel
    

Else

    MsgBox "O critério está em branco"
    Exit Sub
    

End If

MsgBox "Processo concluído!"


End Sub
 
Postado : 17/01/2023 12:15 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Bem vindo ao Planilhando, @Goldmaner

Não visitei o vídeo do link, mas pelo seu código, o que faltou na verdade foi vc fechar o 2º If com End If:

...
        If vpos > 0 Then
            vcel.Value = Trim$(Mid$(vcel.Value, 1, vpos + Len(vtexto)))
        End If
...

A rigor até que nem seria necessário, mas pra isso toda a estrutura teria que estar numa única linha...

...
        If vpos > 0 Then vcel.Value = Trim$(Mid$(vcel.Value, 1, vpos + Len(vtexto)))
...

... ou em linhas separadas mas finalizadas com o underline:

...
        If vpos > 0 Then _
            vcel.Value = Trim$(Mid$(vcel.Value, 1, vpos + Len(vtexto)))
...

 

 
Postado : 17/01/2023 6:28 pm
Goldmaner reacted