05. september 2003 - 14:55Der er
22 kommentarer og 1 løsning
VBA Error problem
Følgende VBA har habbak lavet for mig. Koden søger i et antal regneark i en projektmappe kaldet CYP450 og giver resultatet på "forside".
Det har fungeret perfekt på flere computere med win/office xp og Server 2000(Office 2000 indtil jeg sendte filen til en anden bruger (og vores bærbare) hvor koden returnerer: Ingen fundet.
Jeg fjernede: On Error Resume Next: Horefter Error kode 13 fremkom og i VBA ses fejl ved linien: If Error = 91 Then
Kan nogen hjælpe?
Sub FindOrd() Dim Fundet(300, 5) As String, Sted(300) As String, Søg As Variant, I As Integer, T As Integer Dim R As Integer, Side(300) As String I = 1 On Error Resume Next Range("D1").Select Sheets("Forside").AutoFilterMode = False Sheets("Forside").Select Range("B2:I301").Select ' sletter alle data i området til hyperlink Selection.ClearContents Range("a1").Select Søg = InputBox("Søg på generisk eller handelsnavn", "Find medicinske præparater") Application.ScreenUpdating = False For Each ws In Worksheets If ws.Name <> "Forside" Then ' skift selv navnet på forsiden Sheets(ws.Name).Select Range("A1:H500").Select 'området den søger på ret det selv til Selection.Find(What:=Søg, After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False).Activate If Error = 91 Then Err.Clear If I > 1 Then I = I - 1 GoTo Videre End If a = ActiveCell.Row If a = 1 Then GoTo Videre b = ActiveCell.Column Cells(a, b).Activate Side(I) = ws.Name Sted(I) = "'" & ws.Name & "'!" & ActiveCell.Address For T = 1 To 5 Fundet(I, T) = Sheets(ws.Name).Cells(a, T).Value Next If I > 1 Then For T = 1 To I - 1 If Sted(I) = Sted(T) Then GoTo Videre End If Next End If I = I + 1 Do Cells.FindNext(After:=ActiveCell).Activate If Error = 91 Then Err.Clear If I > 1 Then I = I - 1 GoTo Videre End If a = ActiveCell.Row If a = 1 Then GoTo Videre b = ActiveCell.Column Cells(a, b).Activate Side(I) = ws.Name Sted(I) = "'" & ws.Name & "'!" & ActiveCell.Address For T = 1 To 5 Fundet(I, T) = Sheets(ws.Name).Cells(a, T).Value Next If I > 1 Then For T = 1 To I - 1 If Sted(I) = Sted(T) Then GoTo Videre End If Next End If
I = I + 1 Loop End If Videre: Next Slut: Sheets("Forside").Select Application.ScreenUpdating = True For T = 1 To I - 1 Worksheets("forside").Range("B2:F101").Cells(T, 1).Select For R = 1 To 5 ActiveCell.Offset(0, R) = Fundet(T, R) Next ActiveCell.Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:=Sted(T) ActiveCell.FormulaR1C1 = Side(T) ' skriver hyperlink på alle fundne steder Next Range("D7").Select Selection.Sort Key1:=Range("C2"), Order1:=xlAscending, Key2:=Range("D2") _ , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _ False, Orientation:=xlTopToBottom Range("C2").Select If I = 1 Then MsgBox " ingen fundet" End If Range("b1").Select Selection.AutoFilter End Sub
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Undskyld jkrons. Fejlen var angiveligt som du anførte. Jeg kom dels til glemme at gemme og dels havde jeg ikke genindsat: On Error Resume Next. Nu fungerer den fint. Tak for hjælpen igen, igen. Selvom det måske er på en lidt billig baggrund så er vi da nogle der kan havde lidt gavn af den brækkede arm :0))
Ups fejlen skyldes angiveligt IKKE det nævnte idet der er flere ting den fortsat ikke kan finde. Jeg ved at de afviklende computere har Office 97 - mon problemet kunne være der?
Hvis man optager en FIND makro i XP / 2000 er det ikke sikkert at kan køre i xl97, da der i disse er flere parametre end xl97. Jeg kan bare ikke lige huske hvilke parametre det er, der mangler i xl97
Jeg prøvede at indspille den makro du omtalte på excel 97 og alle parametrene fremgår også der. På Win XP/Office XP viser den fejl ved omtalte Find hvis man fjerner "On Error Resume Next".
Ja jeg forstod godt Error number 91 efter lidt tid. Her kommer det mærkelige: I Excel XP skal der stå: Error for at fungere (alt fungerer) I 97 fungerer dele af systemet hvis der står: Err.Number. Det mærkelig er at nogle præparater godt kan findes (ex. Paracetamol) ens andre ikke findes (ex. Zarator)
Sub FindOrd() Dim Fundet(300, 5) As String, Sted(300) As String, Søg As Variant, I As Integer, T As Integer Dim R As Integer, Side(300) As String I = 1 On Error Resume Next Range("D1").Select Sheets("Forside").AutoFilterMode = False Sheets("Forside").Select Range("B2:I301").Select ' sletter alle data i området til hyperlink Selection.ClearContents Range("a2").Select Søg = InputBox("Skriv søgestrengen på hvad der skal Findes", "Find medicinske præparater") Application.ScreenUpdating = False For Each ws In Worksheets If ws.Name <> "Forside" Then ' skift selv navnet på forsiden Sheets(ws.Name).Select Range("A1:H500").Select 'området den søger på ret det selv til Selection.Find(What:=Søg, After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False).Activate If Err.Number = 91 Then Err.Clear GoTo Videre End If a = ActiveCell.Row If a = 1 Then GoTo Videre b = ActiveCell.Column Cells(a, b).Activate Side(I) = ws.Name Sted(I) = "'" & ws.Name & "'!" & ActiveCell.Address For T = 1 To 5 Fundet(I, T) = Sheets(ws.Name).Cells(a, T).Value Next If I > 1 Then For T = 1 To I - 1 If Sted(I) = Sted(T) Then GoTo Videre End If Next End If I = I + 1 Do Cells.FindNext(After:=ActiveCell).Activate If Err.Number = 91 Then Err.Clear GoTo Videre End If a = ActiveCell.Row If a = 1 Then GoTo Videre b = ActiveCell.Column Cells(a, b).Activate Side(I) = ws.Name Sted(I) = "'" & ws.Name & "'!" & ActiveCell.Address For T = 1 To 5 Fundet(I, T) = Sheets(ws.Name).Cells(a, T).Value Next If I > 1 Then For T = 1 To I - 1 If Sted(I) = Sted(T) Then GoTo Videre End If Next End If
I = I + 1 Loop End If Videre: Next Slut: Sheets("Forside").Select Application.ScreenUpdating = True For T = 1 To I - 1 Worksheets("forside").Range("B2:F101").Cells(T, 1).Select For R = 1 To 5 ActiveCell.Offset(0, R) = Fundet(T, R) Next ActiveCell.Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:=Sted(T) ActiveCell.FormulaR1C1 = Side(T) ' skriver hyperlink på alle fundne steder Next Range("D7").Select Selection.Sort Key1:=Range("C2"), Order1:=xlAscending, Key2:=Range("D2") _ , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _ False, Orientation:=xlTopToBottom Range("C2").Select If I = 1 Then MsgBox " ingen fundet" End If Range("D1").Select Selection.AutoFilter End Sub
jeg har testet denne på både Xl 97 og 2000, og der kører den begge steder.
-->habbak Det lader til at alt kører som det skal i den nye variant - tusinde tak for hjælpen. Kan du give mig et hint om hvad problemet var? Fortsat god ferie.
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.