Avatar billede finnholm Nybegynder
30. juni 2005 - 12:12 Der er 8 kommentarer og
1 løsning

find-erstat går i fejl i VBA

Hej

Jeg skal have udsøgt nogen forskellige værdier i kolonne A og erstattet dem med "". Problemet opstår da søg&erstat funktionen ikke kan finde værdien den søger og går derfor i fejl 91.

Hvordan får jeg den til at søge videre på næste værdi og altså fortsætte i subben.
Avatar billede sjap Praktikant
30. juni 2005 - 12:16 #1
Er næsten nødt til at se koden, men du kan evt. prøve at indsætte

On Error Resume Next


og så lige huske at placere

On Error GoTo 0

i slutningen af sub'en, så fejlbehandlingen sættes tilbage til normalen igen.
Avatar billede finnholm Nybegynder
30. juni 2005 - 12:19 #2
Range("a:a").Select
     
    On Error Resume Next
    Do Until ActiveCell.Value = "-----"
    Selection.find(What:="78300", After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False).Activate
    ActiveCell.Replace What:="78300", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False
       
    Loop
on error goto 0

efter "error" - skal den gå videre til samme procedure med en anden værdi der skal udsøges.
Avatar billede sjap Praktikant
30. juni 2005 - 13:56 #3
måske kan du bruge noget i denne her retning i stedet:

Sub test()
Dim firstAddress

With Worksheets("Ark1").Columns(1)
    Set c = .Find(78300, LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            c.Value = Null
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With

End Sub
Avatar billede finnholm Nybegynder
30. juni 2005 - 14:01 #4
Ikke lige umiddelbart, da jeg skal omdefinere "78300" til ""/null og derved går denne sub jo i fejl.
Avatar billede sjap Praktikant
30. juni 2005 - 16:46 #5
Jeg forstår ikke lige hvad du mener.

Jeg har prøvet på en kolonne med tal, hvor jeg havde skrevet 78300 et par steder. Sub'en erstattede disse steder med Null - det var det, jeg troede du ville.
Avatar billede sjap Praktikant
30. juni 2005 - 16:58 #6
Har lige testet den uden for min anden kode, og kan godt få den til at fejle. Prøv med denne her i stedet:

Sub test()

With Worksheets("Ark1").Columns(1)
    Set c = .Find(78300, LookIn:=xlValues)
    If Not c Is Nothing Then
        Do
            c.Value = Null
            Set c = .FindNext(c)
        Loop While Not c Is Nothing
    End If
End With

End Sub
Avatar billede finnholm Nybegynder
01. juli 2005 - 07:42 #7
Det virker perfekt.
Hvorfor "not is nothing" - den vending forstår jeg ikke helt?
Set - laver vel celleadressen eller...

Ligger du svar
Avatar billede sjap Praktikant
01. juli 2005 - 14:34 #8
Ok.

"Not c Is Nothing" lyder umiddelbart lidt klodset, så jeg kan godt forstå dit problem.

Det kan måske lettest forklares med følgende:

Hvis "c Is Nothing", så er der IKKE fundet noget i søgningen.
Hvis "Not c Is Nothing", så ER der fundet noget i søgningen.
Avatar billede finnholm Nybegynder
04. juli 2005 - 08:03 #9
Ok - tak for hjælpen...!
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

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