Likes Likes:  0
Results 1 to 4 of 4

Thread: Vlookup vba code

  1. #1
    New Member
    Join Date
    Mar 2018
    Posts
    5
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default Vlookup vba code

    Buongiorno,

    ho una funzione vlookup estesa a tutta una colonna, usando il seguente codice VBA

    ActiveCell.FormulaR1C1 = "=VLOOKUP(Sheet2!RC[-1],R1C1:R109C19,7,FALSE)"
    Selection.AutoFill Destination:=Range("B2:B15693")

    viene trascritta solo la classica formula in tutte le celle della colonna.

    Potreste suggerirmi un codice che esegue la stessa funzione senza scrivere materialmente la formula nel foglio excel (ne risulterebbe appensantito).

    Grazie.

  2. #2
    Board Regular
    Join Date
    Sep 2005
    Posts
    5,012
    Post Thanks / Like
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    Default Re: Vlookup vba code

    Puoi utilizzare vlookup nel codice tramite un oggetto applicazione o valutare, ma ecco un semplice esempio di dizionario di scripting:

    Excel 2010
    ABCDEFGHIJ
    1NameNumberNameNumber
    2WQ6
    3QW4
    4AE2
    5FR1
    6IT8
    7YY7
    8U4
    9I0
    10O2
    11P1
    12A6
    13S3
    14D9
    15F4

    Sheet4





    Code:
    Sub test5()
    Dim i%, lr1%, lr2%, d As Object
    Set d = CreateObject("scripting.dictionary")
    lr1 = Cells(Rows.Count, 5).End(xlUp).Row
    lr2 = Cells(Rows.Count, 1).End(xlUp).Row
    For i = 2 To lr1
    d(Cells(i, 5).Value) = Cells(i, 10).Value
    Next
    For i = 2 To lr2
    Cells(i, 2).Value = d(Cells(i, 1).Value)
    Next
    End Sub
    Excel 2010
    ABCDEFGHIJ
    1NameNumberNameNumber
    2W4Q6
    3Q6W4
    4A6E2
    5F4R1
    6I0T8
    7Y7Y7
    8U4
    9I0
    10O2
    11P1
    12A6
    13S3
    14D9
    15F4

    Sheet4




  3. #3
    Board Regular
    Join Date
    Mar 2006
    Location
    Italy
    Posts
    1,434
    Post Thanks / Like
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    Default Re: Vlookup vba code

    Mi pare che invece di inserire la formula in 15mila righe vorresti inserire il risultato.
    Non ho verificato quanto postato da SheetSpread, ma se il problema si presenta su "molte colonne" potresti essere in difficolta' a riprodurre la soluzione "dictionary based" che ti ha proposto.
    Io piu' semplicemente direi:
    -inserisci la formula con le istruzioni che hai
    -poi copia il valore ottenuto e fai IncollaSpeciale /Valori

    Cioe':
    Code:
    ActiveCell.FormulaR1C1 = "=VLOOKUP(Sheet2!RC[-1],R1C1:R109C19,7,FALSE)"
    Selection.AutoFill Destination:=Range("B2:B15693")
    Range("B2:B15693").Value=Range("B2:B15693").Value
    Ciao
    Anthony (GMT+1)

  4. #4
    Board Regular
    Join Date
    Sep 2005
    Posts
    5,012
    Post Thanks / Like
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    Default Re: Vlookup vba code

    Quote Originally Posted by Anthony47 View Post
    se il problema si presenta su "molte colonne" potresti essere in difficolta' a riprodurre la soluzione "dictionary based" che ti ha proposto.
    Io piu' semplicemente direi:
    -inserisci la formula con le istruzioni che hai
    -poi copia il valore ottenuto e fai IncollaSpeciale /Valori
    Gli elementi del dizionario possono essere anche array o l'intero intervallo può essere passato a un array 2D per ricerche più veloci. Ma anche la tua soluzione è buona.

Some videos you may like

User Tag List

Tags for this Thread

Like this thread? Share it with others

Like this thread? Share it with others

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •