Avatar billede mr.handstand Novice
22. oktober 2003 - 17:03 Der er 3 kommentarer og
1 løsning

Err: worksheetfunction.vlookup:Unable to get the vlookup property

Hej!
Jeg ønsker at udføre en vlookup baseret på en "for each" iterering af et range af celler i en pivot-tabel. (Jeg anvender Excel XP, engelsk.)
Men jeg kan ikke anvende "worksheetfunction.vlookup" i min VBA kode. Fejlen er som følger:

"Unable to get the Vlookup property of the Worksheetfunction class."

Dette er den specifikke kode som fejler:

myTarget.Offset(j, -1) = c.PivotCell.RowItems.Item(1)
myTarget.Offset(j, 0) = c.PivotCell.RowItems.Item(2)
myTarget.Offset(j, 1) = c.Offset(0, -1).Value
myTarget.Offset(j, 2) = Application.WorksheetFunction.VLookup(c.PivotCell.RowItems.Item(2), Worksheets("Softwarelist").Range("C:E"), 3, False)
--------------------------------------------------
Her er hele koden i sin helhed:
Sub PopulateCountSheet()
Dim c As Range
Dim j As Integer
Dim k As Integer
Dim myTarget As Range
Dim continueTarget As Range
Dim toSheetNeeded As Worksheet
Dim toSheetNotNeeded As Worksheet
Dim antal As Integer

Worksheets("Focus List YesNoPivot").Activate
Set toSheetNotNeeded = ThisWorkbook.Worksheets("Software NOT NEEDED")

Set myTarget = toSheetNotNeeded.Range("B65536").End(xlUp).Offset(9, 0)

ActiveSheet.PivotTables("PivotNeeded").Update
ActiveSheet.PivotTables("PivotNeeded").PivotSelect "yes", xlDataOnly
j = 0
   
    For Each c In Selection

    If (c.Value = "" Or c.Value = 0) Then
   
        'Debug.Print c.Address
            myTarget.Offset(j, -1) = c.PivotCell.RowItems.Item(1)
        myTarget.Offset(j, 0) = c.PivotCell.RowItems.Item(2)
        myTarget.Offset(j, 1) = c.Offset(0, -1).Value
        myTarget.Offset(j, 2) = Application.WorksheetFunction.VLookup(c.PivotCell.RowItems.Item(2), Worksheets("Reducing Complexi SoftwareList").Range("C:E"), 3, False)
        'VLOOKUP(c.PivotCell.RowItems.Item(2)'Reducing Complexi SoftwareList'!A:E,5,false)"

        j = j + 1
    End If
Next
       
Debug.Print "Done with populate count sheet."
End Sub
Avatar billede stefanfuglsang Juniormester
22. oktober 2003 - 18:06 #1
Følgende testkode virker hos mig:
Function test()
    test = Application.WorksheetFunction.VLookup(1, Worksheets("Ark1").Range("C:E"), 3, False)
End Function
- kan det være din pivot-celle, der har en fejl?
Avatar billede bak Forsker
22. oktober 2003 - 23:07 #2
Så vidt jeg ved en det en fejl der fremkommer når emnet ikke blivet fundet i opslagstabellen.
Nu ved jeg kke hvad du slår op, men vær opmærksom på at pivottabellens række / kolonneoverskrifter er Tekst og du så vil få en fejl hvis du slår op i en tabel efter et tal.
Avatar billede mr.handstand Novice
23. oktober 2003 - 09:58 #3
Jeg lavede selv en workaround. Jeg fik fejlen uanset om det var med "true" eller "false" i exact match option'en.

Min workaround bestod i blot at placere mig i første celle som skulle have vlookup formlen indsat, skrive formlen, og kopiere formlen verticalt lige så mange rækker som der var udfyldt. Ikke den pæneste løsning, men det bragte mig videre...

Jeg tillader mig at nuppe pointene selv. Der var ingen fejl i min pivot, og fejlen var ikke relateret til "tekst/tal" probematikker.
---

Range(columnName & firstCellPosition).Select
    ActiveCell.FormulaR1C1 = _
        "=VLOOKUP(RC[-2],'Focus List Redundant'!C[2]:C[5],4,FALSE)"
    Selection.Copy
    Range(columnName & (firstCellPosition + 1) & ":" & columnName & (firstCellPosition + listCount)).Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
Avatar billede bak Forsker
24. oktober 2003 - 08:11 #4
Helt iorden :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester