Foutcode bij .Find functie

Status
Niet open voor verdere reacties.

BjorntobeWild

Gebruiker
Lid geworden
29 aug 2011
Berichten
120
Beste forumleden,


Ik heb in Excel in het verleden een VBA-script geschreven waarbij door het dubbelklikken op een cel een waarde wordt uitgelezen welke in de opmerking staat van de betreffende cel.
Vervolgens zoekt hij deze waarde op in een ander sheet waarna verdere stappen volgen
Nu is op een aantal pc's een update uitgevoerd. In plaats van Windows 7 32 bits wordt er gebruik gemaakt van 64 bit.
De Excel versie is 32 bit gebleven.


Na deze update geeft de VBA code op onderstaand gedeelte een foutcode 91.


Code:
With Blad4 'onderhoudslijst[INDENT].Range("$A$4:$BF$1681").AutoFilter Field:=1
'zoek regel in sheet waar projectnummer zich bevindt
lRow = .Columns("B:B").Find(what:=strOnderhoudsID, LookIn:=xlValues, lookat:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True _
, SearchFormat:=False).Row[/INDENT]
End With


Als ik in de VBA editor vervolgens stapsgewijs de code doorloop (F8) verloopt de script uitvoer correct.
Iemand enig idee wat de oorzaak zou kunnen zijn van de foutmelding en hoe dit is op te lossen?


Met vriendelijke groet,


Bjorn.
 
Bjorn,

Bij de functie .Find wordt een rangeobject terug gegeven. Een object moet een waarde krijgen door Set daar voor te zetten dus
voor de lRow moet een Set komen te staan dit creëert de foutmelding 91 "Object variable not set".
Daarna kun je kijken welke rij het object heeft. Ik stel voor dat je de code aanpast naar:
Code:
Dim rMijnRange As Range
With Blad4 'onderhoudslijst
    .Range("$A$4:$BF$1681").AutoFilter Field:=1 'zoek regel in sheet waar projectnummer zich bevindt
    Set rMijnRange = .Columns("B:B").Find(what:=strOnderhoudsID, LookIn:=xlValues, lookat:= _
    xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True _
    , SearchFormat:=False)
    lRow = rMijnRange.Row
End With

Veel Succes.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan