Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
  • Avatar do usuário
#11244
Bom dia a todos

Agradeço se alguem puder me ajudar com este assunto.

Estou desenvolvendo uma macro que irá adicionar a fórmula VLookup em uma Workbook adicionada e, para isso, declarei a Workbook atual e a nova Workbook. Quando vou utilizar o comando "ActiveCell.FormulaR1C1 =" se eu utilizar o comando utilizando o nome da planilha "=VLOOKUP(RC[-1],'[Macro_Teste.xlsm]DB'!R5C1:R" & LRWBP & "C19,2,0)" funciona normalmente, mas quando tento utlizar Worbook como declarada apresenta erro de depuração. "=VLOOKUP(RC[-5]," & WBPSheet & "!R5C1:R" & LRWBP & "C19,2,0)"
Abaixo segue o código que desenvolvi até o momento....

Option Explicit
Sub Teste()
Dim LRWBS As Integer
Dim LRWBP As Integer
Dim i As Integer
Dim WBP As Workbook
Dim WBS As New Workbook
Dim WBPSheet As Worksheet

Set WBP = ActiveWorkbook
Set WBPSheet = WBP.Sheets("DB")
LRWBP = Cells(Rows.Count, 1).End(xlUp).Row
Set WBS = Workbooks.Add
WBS.Sheets(1).Select
LRWBS = 25
For i = 1 To LRWBS

Range("A" & i).Select
Selection = "Cliente" & i

Next i

Range("B1").Select

'***********************************************************************************************
'Abaixo as duas formas, a primeira linha funciona normalmente, mas não utilizando a WB declarada
'e sim o nome da planilha
'Já a segunda, através da Workbook declarada, não encontrei a foma correta de utilizar a fórmula
'Peço ajuda para escrever esta fórmula
'***********************************************************************************************

ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],'[Macro_Teste.xlsm]DB'!R5C1:R" & LRWBP & "C19,2,0)" 'Funciona normalmente
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1]," & WBPSheet & "!R5C1:R" & LRWBP & "C19,2,0)" 'Apresenta erro de depuração

'************************************************************************************************

Range("B1:B" & LRWBS).Select
Selection.FillDown
End Sub


Desde já agradeço a atenção

JC Neto
#11267
Olá JCNeto,

dá um:

debug.print "=VLOOKUP(RC[-1],'[Macro_Teste.xlsm]DB'!R5C1:R" & LRWBP & "C19,2,0)"

e

debug.print "=VLOOKUP(RC[-1]," & WBPSheet & "!R5C1:R" & LRWBP & "C19,2,0)"

e verifique se retornam a mesma string. Fazendo isso você provavelmente encontrará alguma diferença na segunda em relação a primeira. Aí é só ajustar.

Att.
#MichelExcel
#11279
A sintaxe para a expressão Formula "espera" argumentos em forma de string (texto).
Ao definir sua variável como worksheet, a mesma e assumida como um objeto não uma string,motivo do erro.
Experimente definir sua variavel com String
Dim WBPSheet as String
e montar a mesma +/- assim:
WBPSheet = "'[" & ActiveWorkbook.Name & "]DB'"
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord