Just nu i M3-nätverket
Jump to content

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


ssv9831

Recommended Posts

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]

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

Archived

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



×
×
  • Create New...