PDA

View Full Version : [Excel+VBA] copiare variabile come formula in una cella


scriptors
17-02-2011, 08:47
Range("H2").Select

Arg1 = "=VLOOKUP(RC[-1],[" + ReportName + "]" + ReportName + "!R2C5:R" + CStr(TotalrowsReport) + "C6,2,FALSE)"

ActiveCell.FormulaR1C1 = Arg1

Dunque:

Ho due fogli excel, foglio1 e foglio2, devo inserire in una cella del foglio1 un CercaVert che ha, come area di riferimento, una zona del foglio2

ReportName = variabile che contiene il nome del foglio2 (foglio2.xlsx)
TotalrowsReport = variabile che contiene il numero di righe del foglio2 (12000 - numero che trasformo in stringa)

la variabile Arg1, in formato stringa, contiene esattamente quello che devo copiare nella cella attiva (H2) del foglio1

=VLOOKUP(RC[-1],[foglio2.xlsx]foglio2.xlsx!R2C5:R12000C6,2,FALSE)

se visualizzo la variabile con un MsgBox il testo è preciso preciso

il problema nasce appena uso: ActiveCell.FormulaR1C1 = Arg1

mi va in errore ed ovviamente nella cella non scrive nulla

uso le variabili perche i nomi dei fogli variano di giorno in giorno e non conosco il numero di righe presenti nel foglio2 (ma trovo tutto tramite VBA)

Dove sbaglio ?

Provato:

Range("H2") = Arg1

Arg1 = Evaluate("=VLOOKUP(RC[-1],[" + ReportName + "]" + ReportName + "!R2C5:R" + CStr(TotalrowsReport) + "C6,2,FALSE)")

non funzionano

HELP :mc:

scriptors
17-02-2011, 10:24
Range("H2").Select

Arg1 = "=VLOOKUP(RC[-1],[" + ReportName + "]" + ReportName + "!R2C5:R" + CStr(TotalrowsReport) + "C6,2,FALSE)"

=VLOOKUP(RC[-1],[foglio2.xlsx]foglio2.xlsx!R2C5:R12000C6,2,FALSE)



Trovato l'inghippo, il problema era la formula errata, quando si scrive il nome del file la seconda volta l'estensione va tolta :muro:

Quindi:

Arg1 = "=VLOOKUP(RC[-1],[" + ReportNameFULL + "]" + ReportNameSHORT + "!R2C5:R" + CStr(TotalrowsReport) + "C6,2,FALSE)"