Avatar billede mitrine Nybegynder
09. november 2004 - 10:42 Der er 5 kommentarer og
1 løsning

hjælp til at progamere med funktionen "find"

Jeg har lavet denne lille kode som skal hente data fra et andet ark. den finder det den skal flytte ved at bruge funktionen "find", mit problem er at hvis det eftersøgte ikke findes hopper den ud med beskeden om "kørselsfejl 91", objektvariablen eller with blokken ikke angivet. Det virker som om det kun er nogen gange for hvis jeg konstrurer en fejl altså et nr som jeg ved ikke findes virker errorhandleren fint. jeg håber det er til at finde ud af?

Koden:

Function indsætkonto()

Workbooks.OpenText FileName:="W:\PBS\betalingsaftalerudentekstbackup.xls"
Windows("pbstest.TXT").Activate
Range("D2").Select
   
  Do While Selection <> Empty
 
    On Error GoTo errorHandler
   
  aftnr = Selection
 
    Selection.Copy
    Windows("betalingsaftalerudentekstbackup.xls").Activate
   
    Cells.Find(What:=aftnr, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False).Activate
         
         
    ActiveCell.Offset(0, 3).Copy
    Windows("pbstest.TXT").Activate
    ActiveCell.Offset(0, 4).Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
      ActiveCell.Offset(0, -4).Select
     
errorHandler:
    Windows("pbstest.TXT").Activate
    ActiveCell.Offset(1, 0).Select

    Loop
   
End Function
Avatar billede martin_moth Mester
11. november 2004 - 18:08 #1
Hvor kommer fejlen?

Kan du ikke kode det uden funktionen "find", men selv loope igenem alle relevante celler? Så har du styr på hvad koden gør - men den bliver nok langsommere
Avatar billede mitrine Nybegynder
12. november 2004 - 09:39 #2
Hej
Jeg har fundet ud af at fejlen kommer 2. gang den søger efter data der ikke findes, første gang hopper den fint ned til errorhandleren men anden gang kommer den ovenståendefejl.
Jo jeg ville sagtens kunne lave et loop hvor den søger i alle felter, men data arket er så stort og den skal hente så mange oplysninger at det ville tage uacceptabelt lang tid. Derfor ville jeg gerne bruge "find".
Avatar billede martin_moth Mester
15. november 2004 - 10:15 #3
Er du sikker på det - "Uacceptabel lang tid". Har du prøvet?
Hvis du sætter .screenupdate = false, mens du søger, tror jeg ikke det tager lang tid.
Avatar billede mitrine Nybegynder
15. november 2004 - 10:36 #4
Ja, jeg har mange der kører på den måde, og ville derfor gerne prøve at bruge "find" ikke kun fordi jeg syntes det tager lang tid med en løkke der skal læse alle felter men også fordi jeg godt kunne tænke mig at få "find" den til at virke, det burde ikke være umuligt:-)
Håber du kan hjælpe alligevel....
Avatar billede martin_moth Mester
15. november 2004 - 12:30 #5
Jeg kan ikke lige gennemskue din kode ved første blik, så jeg gør ikek andet end at komme med et alerenativ.

Held og lykke :o)
Avatar billede mitrine Nybegynder
15. november 2004 - 13:05 #6
Ok men tak fordi du prøvede:-)
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
Kurser inden for grundlæggende programmering

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