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

Jämföra värden och skriva ja.


ssv9831

Rekommendera Poster

Hej!

 

Har problem med att skapa ett macro i Excel.

 

Jag vill jämföra ett värde(Både bokstäver och siffror) i en A-kolumnen med alla värden i B-kolumnen. Om det blir någon träff vill jag föra in ett 'ja' i samma rad (Mn i C-kolumnen) där det första värdet fanns.

 

I B kolumnen finns det tomma celler i mellanåt.

 

Någon som kan hjälpa mig?

 

[inlägget ändrat 2006-09-20 07:06:04 av ssv9831]

Länk till kommentar
Dela på andra webbplatser

Därför det finns redan värden i kolumn c som inte får ändras. Så det ska bara skrivas i ett ja när värdet i kol A träffar samma värde i kol B.

 

Länk till kommentar
Dela på andra webbplatser

Det allra enklaste är en loop:

[color="#0000ff"][bLÅ]Sub[/color][/blå] jamfor()
 kollvärde = [color="#0000ff"]Cells[/color](1, 1)  [color="#006400"][GRÖN]'Hämtar värde från A1 2,1 ger A2 osv[/color][/GRÖN]
 [color="#0000ff"][bLÅ]For[/color][/blå] r = 1 [color="#0000ff"][bLÅ]To[/color][/blå] 300  [color="#006400"][GRÖN]'Stegar igenom 300 rader med start på rad 1. Höj vid behov.[/color][/GRÖN]
  [color="#0000ff"][bLÅ]If[/color] Cells[/blå](r, 2) = kollvärde [color="#0000ff"][bLÅ]Then[/color][/blå]  [color="#006400"][GRÖN]'När sökt värde hittats[/color][/GRÖN]
   [color="#0000ff"]Cells[/color](r, 3) = [GRÅ]"JA"[/GRÅ]  [color="#006400"][GRÖN]'Skriv JA i kolumn C[/color][/GRÖN]
  [color="#0000ff"][bLÅ]End[/color] [color="#0000ff"]If[/color]
 [color="#0000ff"]Next[/color]
[color="#0000ff"]End[/color] [color="#0000ff"]Sub[/color][/blå]

 

/Pär B

[inlägget ändrat 2006-09-20 08:44:45 av PerboMan]

Länk till kommentar
Dela på andra webbplatser

Ska jag göra den lite svårare?

 

Ja - gillar For Each så det ska det blir

 

1: Hitta området

2: Stega igenom

3: Skriv

 

Sub jamfor2()
   Dim myCell As Range
   Dim chRange As Range
   Dim rwStart As Long
   Dim colStart As Long
   Dim rnValue As Range

   rwStart = 1 ' startraden
   colStart = 2 ' startkolumnen
   Set chRange = Range(Cells(rwStart, colStart), Cells(rwStart, colStart).End(xlDown)) 'Identifierar området

   Set rnValue = Cells(1, 1) ' cellen att jämföra med
   For Each myCell In chRange ' stegar
       If myCell = rnValue Then 'När sökt värde hittats
           myCell.Offset(0, 1) = "JA" 'Skriv JA i kolumn C
       End If
   Next myCell ' nästa cell
End Sub

 

Viktiga här, som koden bygger på, är att listan är helt ifylld, dvs inga gap finns. Man kan även vända på det så att slutcellen för området beräknas nedifrån:

Cells(Range("A:A").Cells.Count, colStart).End(xlUp)

 

:)

 

 

/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...