30. marts 2006 - 14:44Der er
16 kommentarer og 1 løsning
Finde værdi i kolonne
Hej. Jeg har en kolonne med en masse navne. Jeg ønsker at finde et specifikt navn, derefter få fat i den tekst der står i cellen lige nedenunder. Har haft kigget på LOOKUP'sne, men kan ikke få dem til at virke efter hensigten.
Hej mrhj. Sorry, skulle lige have nævnt at jeg kører med en engelsk version. Har forsøgt at udskifte indeks med index og sammenlign med match, men uden held. Mads
Jeg har lige et ekstra spørgsmål - håber I også kan hjælpe mig med det. Jeg får nu det det problem, at jeg får for mange værdier med. Kan man indsætte en stop-klausul således, at hvis det næste felt er tomt, da stopper den med at hente flere værdier (jeg bruger det i en macro der er tilknyttet en knap).
Nå, men denne henter ihvertfald de 4 værdier ind i et felt og sepererer dem med et ,
Sub hent() Dim b, c, d For Each a In Range(("a1"), Range("a6000").End(xlUp)) If a = Range("b1") Then d = a.Row For d = 0 To 3 c = c & a.Offset(d, 0) & ", " Next Range("c1") = c End If Next End Sub
så skal jeg have værdier fra og med cellen under test3, men ikke ALLE cellerne. En af cellerne fx. A7 vil være tom og så kommer der nye værdier derefter som jeg ikke skal bruge i denne sammenhæng. Jeg skal altså her have fat i cellerne A4:A6 (A7 stopper).
Det er ikke sådan lige at forklare, håber dette gav et bedre billede af min problemstilling. Jeg kigger på dit eksempel senere, og skal nok vende tilbage. Er super glad for den gode og hurtige hjælp. Mvh Mads
Denne skulle klare det du ønsker. Søgeværdi tastes i B1 og resultatet gives i C1
Sub hent() Dim tæller, værdi For Each obj In Range("a1", Range("a60000").End(xlUp)) If obj = Range("b1") Then tæller = obj.Row For tæller = 0 To 1000 If obj.Offset(tæller, 0) = "" Then Exit For ElseIf obj.Offset(tæller + 1, 0) = "" Then værdi = værdi & obj.Offset(tæller, 0) Else værdi = værdi & obj.Offset(tæller, 0) & ", " End If Next End If Range("c1") = værdi Next End Sub
Hej Mrjh. Super, det virker perfekt. Jeg har lige skudt lidt flere point i, da spørgsmålet jo har udviklet sig væsentligt grundet mine dårlige beskrivelser. Jeg er igang med at lære VBA, og dette er et stort skridt på vejen til at forstå tingene bedre. En sidste ting (tror jeg :-)), hvis jeg nu vil have alle de fremkomne værdier sat ind i hver deres celle, hvordan gør jeg så det? Gemmer dem i et array og trækker dem ud en for en i hver sin celle?..men hvordan?
Mvh Mads
ps: læg endelig et svar så du kan få dine velfortjente point.
Nå, jeg fandt selv ud af det: Sub hent() Dim tæller, arr(151) For Each obj In Range("a3", Range("a150").End(xlUp)) If obj = "Pipeline" Then tæller = obj.Row For tæller = 1 To 150 If obj.Offset(tæller, 0) = "" Then 'hvis this celle er tom Exit For ElseIf obj.Offset(tæller + 1, 0) = "" Then 'hvis next celle er tom arr(tæller) = obj.Offset(tæller, 0) Worksheets("Sheet3").Cells(30 + tæller, 7).Value = arr(tæller) Else arr(tæller) = obj.Offset(tæller, 0) Worksheets("Sheet3").Cells(30 + tæller, 7).Value = arr(tæller) End If Next End If Next End Sub
Ved ikke hvor kønt det er, men det virker efter hensigten. Tusind tak for hjælpen, jeg giver dig point så snart du smider et svar. Hey
Sub hent() Dim tæller, værdi, retur Range("c:c").ClearContents For Each obj In Range("a1", Range("a60000").End(xlUp)) If obj = Range("b1") Then tæller = obj.Row For tæller = 0 To 1000 If obj.Offset(tæller, 0) = "" Then Exit For Else værdi = obj.Offset(tæller, 0) Range("c1").Offset(tæller, 0) = værdi End If Next End If Next End Sub
...men din løsning er jo væsentligt kønnere :-) En aller sidste ting, jeg skal bruge macroen i et andet ark end der hvor dne skal hente data (altså hente i sheet2 og skrive i sheet1). Jeg har forsøgt med med ---- For Each obj In Range("Sheet2!a3", Range("Sheet2!a150").End(xlUp)) --- men det virker ikke. Endnu engang tak for hjælpen. Mads
Sheets("Sheet2").Range("a3", sheets("Sheet2").Range("a150").End(xlUp)) Der skal altså Sheets("Navn") foran din range og det samme hvor du vil have returneret værdien. Prøv i øvrigt hjælpemenuen, hvis du stiller dig på et argument og trykker F1 kan du faktisk læse dig frem til en hel del. Håber det hjalp :-)
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.