18. februar 2015 - 11:16Der er
11 kommentarer og 1 løsning
Søg efter tekst og returner
Baggrund:
I søjle R, som er på 2000 linjer, ønsker jeg at finde alle, hvor der i cellen står "Blå".
Hvis der står "Blå" ønsker jeg hele linjen kopieret eller linked over i en anden fanen i regnearket, og næstkommende "Blå" i linjen nedenunder, sådan at alle "Blå" listes under hinanden.
Sub flyt() Dim x, y As Integer y = 1 LastRow = Cells(65356, 1).End(xlUp).Row On Error Resume Next For x = 1 To LastRow If InStr(1, Cells(x, 1), "blå") Then Cells(x, 1).EntireRow.Copy Destination:=Worksheets("Sheet2").Cells(y, 1) y = y + 1 End If Next End Sub
Jo, kolonnen (eller søjle som du kalder det) er vigtig. Det er bestemt af tallet i If InStr(1, Cells(x, 1), "blå") Then (andet 1-tal) Som jeg lavede den søger den i kolonne A
Husk ved indtastning, at du skal holde Ctrl og Shift nede før du trykker på Enter. Når første formel er indtastet på denne måde han du kopiere på normal vis.
Det virker fremragende hvis der skal slås på i A og ikke R, men:
Hvilke 1 skal erstattes af 18? Har prøvet mig frem, men ikke kommet i mål.
Sub flyt() Dim x, y As Integer y = 1 LastRow = Cells(65356, 1).End(xlUp).Row On Error Resume Next For x = 1 To LastRow If InStr(1, Cells(x, 1), "blå") Then Cells(x, 1).EntireRow.Copy Destination:=Worksheets("Sheet2").Cells(y, 1) y = y + 1 End If Next End Sub
Sub flyt() Dim x, y As Integer y = 1 LastRow = Cells(65356, 1).End(xlUp).Row On Error Resume Next For x = 1 To LastRow If InStr(1, Cells(x, 18), "blå") Then Cells(x, 1).EntireRow.Copy Destination:=Worksheets("Sheet2").Cells(y, 1) y = y + 1 End If Next End Sub
Bemærk at den diskriminerer mellem store og små bogstaver. Du kan for at undgå dette udskifte
If InStr(1, Cells(x, 18), "blå") Then
med
If InStr(1, Cells(x, 18), "blå") or InStr(1, Cells(x, 18), "Blå") Then
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.