Ir para o conteúdo
x_soldier

Like VBA

Mensagens Recomendadas

x_soldier

Boas pessoal.

Tenho andado a googlar e ainda não me safei, como é possivel fazer um like em VBA??

Já tentei de algumas formas, parecendo-me esta a mais correcta mas não me oriento:

If (Cells(j, "Q").Value) Like "86000/5*" Then

Alguém dá uma ajudinha??

Obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

Boas pessoal.

Tenho andado a googlar e ainda não me safei, como é possivel fazer um like em VBA??

Já tentei de algumas formas, parecendo-me esta a mais correcta mas não me oriento:

If (Cells(j, "Q").Value) Like "86000/5*" Then

Alguém dá uma ajudinha??

Obrigado

boas

tenta assim

If Like '%" & (Cells(j, "Q").Value) & "%' Then

ou

If Like '*" & (Cells(j, "Q").Value) & "*' Then

nao testei mas deve funcionar

cumps

acao

Editado por acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
x_soldier

boas

tenta assim

If Like '%" & (Cells(j, "Q").Value) & "%' Then

ou

If Like '*" & (Cells(j, "Q").Value) & "*' Then

nao testei mas deve funcionar

cumps

acao

Boas,

Não está a funcionar, dá logo erro no código.

O que eu queria neste código era que me elimina-se todas as linhas começadas por 86000/5.

Sub Button2_Click()

	Sheets("Bookkeeping").Select
Last = Cells(Rows.Count, "E").End(xlUp).Row
For j = Last To 2 Step -1
	If (Cells(j, "E").Value) =  "860000/5" Then
		Cells(j, "A").EntireRow.Delete
	End If
Next j

End Sub

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

Boas,

Não está a funcionar, dá logo erro no código.

O que eu queria neste código era que me elimina-se todas as linhas começadas por 86000/5.

Sub Button2_Click()

	Sheets("Bookkeeping").Select
Last = Cells(Rows.Count, "E").End(xlUp).Row
For j = Last To 2 Step -1
	If (Cells(j, "E").Value) =  "860000/5" Then
		Cells(j, "A").EntireRow.Delete
	End If
Next j

End Sub

boas

não é a função like que deves utilizar mas sim a função Left$

tens um exemplo:

http://www.macoratti.net/strings.htm

cumps

acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
FreiNando

Like é um operador lógico, logo não pode ser usado como função.

A forma como tinhas é a correcta:

Sub Button2_Click()
		    Sheets("Bookkeeping").Select
    Last = Cells(Rows.Count, "E").End(xlUp).Row
    For j = Last To 2 Step -1
		    If Cells(j, "E").Value Like "860000/5*" Then
				    Cells(j, "A").EntireRow.Delete
		    End If
    Next j
End Sub

A falha deve ser por outro motivo.

Editado por FreiNando

O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
x_soldier

Like é um operador lógico, logo não pode ser usado como função.

A forma como tinhas é a correcta:

Sub Button2_Click()
			Sheets("Bookkeeping").Select
	Last = Cells(Rows.Count, "E").End(xlUp).Row
	For j = Last To 2 Step -1
			If Cells(j, "E").Value Like "860000/5*" Then
					Cells(j, "A").EntireRow.Delete
			End If
	Next j
End Sub

A falha deve ser por outro motivo.

Segundo o que dizes é que não posso usar o like numa função deste calibre??

Simplesmente ignora-me :confused:

Sub Button2_Click()
Sheets("Bookkeeping").Select
Last = Cells(Rows.Count, "E").End(xlUp).Row
For j = Last To 1 Step -1
 If (Cells(j, "E").Value) = Left("86000/5", 6) Then
	 Cells(j, "A").EntireRow.Delete
 End If
Next j
End Sub

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jpaulino

Segundo o que dizes é que não posso usar o like numa função deste calibre??

Sim podes e o FreiNando até te mostrou um exemplo. O primeiro exemplo que mostraste está correcto por isso o erro deve ser em outro local.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
FreiNando

Agora caí de quatro...

Segundo o que dizes é que não posso usar o like numa função deste calibre??

Simplesmente ignora-me :confused:

Sub Button2_Click()
Sheets("Bookkeeping").Select
Last = Cells(Rows.Count, "E").End(xlUp).Row
For j = Last To 1 Step -1
 If (Cells(j, "E").Value) = Left("86000/5", 6) Then
	 Cells(j, "A").EntireRow.Delete
 End If
Next j
End Sub

Left("86000/5",6) = "86000/" ou não?

Adiante...

Todo o programador deve conhecer os operadores, sejam eles aritméticos, comparação, concatenação, ou lógicos.

A ajuda do VBA possui muita informação sobre este assunto.

Vai à ajuda (F1) e no indice começa aqui: Excel 2010 Developer Reference > Visual Basic for Applications Language Reference > Visual Basic Language Reference > Operators


O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.