16. januar 2013 - 11:08Der er
10 kommentarer og 1 løsning
Run-time Error 1004: Application-defined or object-defined error
Hej.
Jeg er relativ ny bruger af Excel VBA og er løbet ind i et problem. Når jeg kører en makro får jeg fejlmeddelelse Run-time Error 1004: Application-defined or object-defined error.
Fejlen ligger i "Set searchRange"-delen forneden, lastCol og lastRow defineres fint (24 og 262754)
Hej, Tak for det. Jeg satte ikke resten af koden ind for at gøre fejlen mere synlig, men her er hele modulet:
Sub Søg(søgeOrd1 As String, Optional søgeOrd2 As String) Dim tæller As Integer Dim wsAntal As Integer Dim firstAddress As String Static fundne As Integer Dim c As Range Dim d As Range Dim currentRow As Long Dim searchRange As Range Dim lastCol As Integer Dim lastRow As Long
fundne = 2 With searchRange Set c = .Find(what:=søgeOrd1, LookIn:=xlValues, LookAt:=xlPart, searchorder:=xlByRows, _ searchdirection:=xlNext, MatchCase:=False, SearchFormat:=False) If Not c Is Nothing Then firstAddress = c.Address Do currentRow = Range(c.Address).Row Worksheets("prisDB").Range(Cells(currentRow, 1)).EntireRow.Copy Worksheets("SøgeArk").Range("A" & fundne) fundne = fundne + 1 Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> firstAddress End If '2. søgning If søgeOrd2 <> "" Then Set d = .Find(what:=søgeOrd2, LookIn:=xlValues, LookAt:=xlPart, searchorder:=xlByRows, _ searchdirection:=xlNext, MatchCase:=False, SearchFormat:=False) If Not d Is Nothing Then firstAddress = d.Address Do currentRow = Range(d.Address).Row Worksheets("prisDB").Range(Cells(currentRow, 1)).EntireRow.Copy Worksheets("SøgeArk").Range("A" & fundne) fundne = fundne + 1 Set d = .FindNext(d) Loop While Not d Is Nothing And d.Address <> firstAddress End If End If End With
Application.EnableEvents = True 'Application.ShowWindowsInTaskbar = True Application.DisplayAlerts = True Application.ScreenUpdating = True If Range("A2") = "" Then MsgBox "Ingen match på din søgning", vbOKOnly + vbCritical, "Resultat" Fejl: If Err.Number <> 0 Then MsgBox "Der er sket en fejl i filen " & ActiveWorkbook.Name & " | Modul modFunktioner | Sub Fejlhåndtering: " & Err.Description End If End Sub
Jeg får søgeOrd1 og søgeOrd2 fra en Userform - det virker tilsyneladende godt nok.
Det lykkedes mig at finde en vej rundt ved at bruge CurrentRegion: Set searchRange = Worksheets("prisDB").Range("A1").CurrentRegion
Den regneark der søges på udfyldes af et andet program jeg har lavet, så jeg kan sikre mig at der ikke er "huller" i det. Ikke videre elegant - men det virker :-).
Husk at lukke spørgsmålet - Accepter blot et af dine Svar og Afvis de øvrige.
Synes godt om
Ny brugerNybegynder
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.