Just nu i M3-nätverket
Jump to content

Find - What - Next


omgiw

Recommended Posts

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

 

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...