25. maj 2010 - 09:29Der er
6 kommentarer og 1 løsning
Excel Makro - Søg og kopier til andet ark.
Hej. Jeg har fundet noget makro kode på nettet som kan det som det skal, men der er et lille problem.
Jeg ønsker at gennemsøge 3-5 excel sheets, efter et medarbejder nummer, og derefter kopiere alle linier med det nummer til et andet ark (resultat).
Men hvis der står et søge ord på samme linie i flere forskellige ark, kopieres resultaterne oven i hinanden, og derved får jeg ikke det hele med.
Nogen der er hårde til Excel?
Sub SearchForStrin()
Dim LSearchRow As Integer Dim LCopyToRow As Integer For Each sh In Array("Mobil", "Mobil Bredbånd") Sheets(sh).Select 'Start search in row 1 LSearchRow = 2
'Start copying data to row 2 in Sheet2 (row counter variable) LCopyToRow = 2
While Len(Range("A" & CStr(LSearchRow)).Value) > 0
'If value in column E = "Mail Box", copy entire row to Sheet2 If Range("A" & CStr(LSearchRow)).Value = "1" Then
'Select row in Sheet1 to copy Rows(CStr(LSearchRow) & ":" & CStr(LSearchRow)).Select Selection.Copy
'Paste row into Sheet2 in next row Sheets("Resultat").Select Rows(CStr(LCopyToRow) & ":" & CStr(LCopyToRow)).Select ActiveSheet.Paste
'Move counter to next row LCopyToRow = LCopyToRow + 1
'Go back to Sheet1 to continue searching Sheets("Mobil").Select
End If LSearchRow = LSearchRow + 1
Wend Next 'Position on cell A3 Application.CutCopyMode = False Sheet1.Select
Dim LSearchRow As Integer Dim LCopyToRow As Integer
LCopyToRow = 2 'FLYTTET, den skal jo ikke tilbage til 2 ved arkskift
For Each sh In Array("Mobil", "Mobil Bredbånd") Sheets(sh).Select 'Start search in row 1 LSearchRow = 2
'Start copying data to row 2 in Sheet2 (row counter variable)
While Len(Range("A" & CStr(LSearchRow)).Value) > 0
'If value in column E = "Mail Box", copy entire row to Sheet2 If Range("A" & CStr(LSearchRow)).Value = "1" Then
'Select row in Sheet1 to copy Rows(CStr(LSearchRow) & ":" & CStr(LSearchRow)).Copy Sheets("Resultat").Rows(CStr(LCopyToRow) & ":" & CStr(LCopyToRow))
'Move counter to next row LCopyToRow = LCopyToRow + 1
End If LSearchRow = LSearchRow + 1
Wend Next 'Position on cell A3
Sheet1.Select
MsgBox "Søgning afsluttet"
Exit Sub End Sub
Synes godt om
Slettet bruger
30. maj 2010 - 11:49#3
Takker. Løste dog selv fejlen inden du skrev. + Har rettet så koden fjerner gamle resultater ved ny søgning + Har lavet så resultater fra forskellige ark ikke overskriver hinanden.
Dejligt at der er andre end mig der kan bruge koden. Nogen gange er det bare rart at have noget at sammenligne med.
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.