Just nu i M3-nätverket
Gå till innehåll

Find - What - Next


omgiw

Rekommendera Poster

Hej,

 

Jag behöver hjälp för jag får det inte att fungera

 

Om jag markerar en kolumn i ett excelark där mina produkter finns på resp rader och sedan letar efter "skruv" i kolumnens celler, ser ett inspelat makro ut som

 

Columns("V:V").Select

Selection.Find(What:="skruv", After:=ActiveCell, LookIn:=xlFormulas, _

LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _

MatchCase:=False, SearchFormat:=False).Activate

Selection.FindNext(After:=ActiveCell).Activate

 

Men hur gör jag om jag vill att när cellen uppfyller villkoret, så ska cellens hela innehåll skrivas ut i kolumn U, så att jag i den kolumnen får en lista som börjar i U1 och fortsätter nedåt med innehållet i cellerna i kolumn V

 

Trots ett antal försök får jag det inte att fungera, men jag vet ju att kunskapen finns här på eforum så jag hoppas på hjälp........

 

//omgiw

 

Länk till kommentar
Dela på andra webbplatser

Mmh, du vill filtrera ut något ur en tabell? Ok, Find kan göra det åt dig men det finns andra verktyg för detta.

 

Exempelvis avancerat filter:

Säg att du har en lista i A1:B10. På rad 1 har du rubrikerna Namn (A1) respektive Värde (B1)

 

Du vill sortera ut dessa poster som har namnet skruv till kolumn U.

 

Du har några tomma celler i, låt oss säga, E1:E2.

 

Då kan du göra på detta enkla vis:

Sub ExtractSort()

   ' ange kriterium
   Range("E1") = "namn"
   Range("E2") = "skruv"

   ' rensa målområde (bäst att göra det)
   Range("u1").EntireColumn = ""
   Range("u1").Offset(0, 1).EntireColumn = ""
   ' Filtrera
   Range("A1:B10").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
       "E1:E2"), CopyToRange:=Range("U1"), Unique:=False
End Sub

 

Annars finns även autofilter och avancerat filter kan även filtrera på plats.

 

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Länk till kommentar
Dela på andra webbplatser

Snott nästan rakt av från Excels hjälp för Find

[color="#0000ff"]Sub[/color] test()
[color="#0000ff"]Dim[/color] i As Integer
[color="#0000ff"]Dim[/color] c As Range
[color="#0000ff"]Dim[/color] firstAddress As Variant

i = 0

[color="#0000ff"]With[/color] Worksheets(1).Columns([GRÅ]"V:V"[/GRÅ])
    [color="#0000ff"]Set[/color] c = .Find([GRÅ]"skruv"[/GRÅ], LookIn:=xlValues)
    [color="#0000ff"]If[/color] [color="#0000ff"]Not[/color] c Is [color="#0000ff"]Nothing[/color] [color="#0000ff"]Then[/color]
        firstAddress = c.Address
        [color="#0000ff"]Do[/color]
            Range([GRÅ]"U1"[/GRÅ]).Offset(i, 0) = c.Value
            [color="#0000ff"]Set[/color] c = .FindNext(c)
            i = i + 1
        [color="#0000ff"]Loop[/color] [color="#0000ff"]While[/color] [color="#0000ff"]Not[/color] c Is [color="#0000ff"]Nothing[/color] [color="#0000ff"]And[/color] c.Address <> firstAddress
    [color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
[color="#0000ff"]End[/color] [color="#0000ff"]With[/color]


[color="#0000ff"]End[/color] [color="#0000ff"]Sub[/color]

 

 

Underskatt aldrig knappen [F1]

 

*Ed*

Dahhhh, jädrans Monshi. Var det så enkelt....:)

[inlägget ändrat 2007-02-12 10:45:45 av MH2]

Länk till kommentar
Dela på andra webbplatser

Och vilken variant valde du? Jag lovar att MIN är snabbast på stora mängder data och stabilast i alla lägen.

Enda abret villkorsområdet men det kan du ha var som helst på bladet och radera efter användandet.

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...