Macro procv

Estou precisando de uma macro para executar mesma funçao do procv.

Alguem pode me ajudar???

1 Like

Porque complicar? Qual o motivo ?

isso faria parte de uma macro maior ainda que estou programando.Preciso de uma macro que verifique se um valor de uma coluna contem em linhas de outra coluna.Usava o comando application.WorksheetFunction.VLookup no excel vba,mas agora presiso disso no calc.

Não serve colocar a PROCV numa célula qualquer e pegar o resultado?

Olá,

Na função Basic abaixo chamamos a função interna Procv do Calc através do método “callFunction” do serviço “FunctionAccess”:

Function ProcVert(Item, Intervalo As Object, IndiceCol As Integer)
Dim svcFA As Object
         
   svcFA = createUnoService("com.sun.star.sheet.FunctionAccess")
   ProcVert = svcFA.callFunction("VLOOKUP",Array(Item, Intervalo, IndiceCol, True))
End Function

Editado:

Exemplo de macro para chamar a função basic acima:

Sub ChamaProcVert
Dim oPlanAtiva as Object, oIntervalo as Object 

	' Planilha Ativa
	oPlanAtiva = ThisComponent.CurrentController.ActiveSheet
	' Intervalo onde a função irá procurar
	oIntervalo = oPlanAtiva.getCellRangeByName( "A2:B6" )
	' Item que será procurado
	vCel = oPlanAtiva.getCellRangeByName( "E2" ).getString
	
	' Chama a função ProcVert
	vResultado = ProcVert( vCel,oIntervalo,2 )
	' Exibe o Resultado
	Print vResultado
End Sub

Arquivo de exemplo << aqui >>

At.te,
Grafeno

1 Like

pode me dar um exemplo Grafeno?

@alexandre.anacleto2, editei minha resposta para incluir um exemplo (macro e arquivo). Espero que seja útil. Se lhe atender, não se esqueça de marcar a resposta como “resposta correta”. Atte, Grafeno