If, left function, loop, replace

Hi,

I need a piece of code to count rows "A" then do do the following


IF Left(D2,2) = "BR" then W2 = "Paris" else W2 = "New York"

And loop till the last row.

Can anyone put that in structure for me!

Thanks
Seamus
Seamus2626Asked:
Who is Participating?
 
dlmilleConnect With a Mentor Commented:
When you say "count rows A" do you mean for each row having data in Column A do this task?  That's what this code does:

Sub doTheWork()
Dim wks As Worksheet
Dim rng As Range
Dim r As Range

    Set wks = ActiveSheet
    
    Set rng = wks.Range("A1", wks.Range("A" & wks.Rows.Count).End(xlUp))
    
    For Each r In rng
        If Left(wks.Range("D" & r.Row).Value, 2) = "BR" Then
            wks.Range("W" & r.Row).Value = "Paris"
        Else
            wks.Range("W" & r.Row).Value = "New York"
        End If
    Next r
    
End Sub

Open in new window


Cheers,

Dave
0
 
Martin LissOlder than dirtCommented:
What you are asking is a little confusing because it seems like you want to loop through the rows but your example uses cell D2. Is this waht you want


Dim r As Range
Dim i As Long

Set r = Range("A1").End(xlDown).Offset(0, 0)
For i = 1 To r.Row

    If Range("D" & 1).Value = "BR" Then
        Range("W" & i).Value = "Paris"
    Else
        Range("W" & 1).Value = "New York"
    End If

Next
0
 
Rory ArchibaldConnect With a Mentor Commented:
Or:
Sub testing()
    Dim lngLastrow As Long
    lngLastrow = Cells(Rows.Count, "A").End(xlUp).Row
    Range("W2:W" & lngLastrow) = Evaluate("IF(LEFT(A2:A" & lngLastrow & ",2)=""BR"",""Paris"", ""New York"")")
End Sub

Open in new window

0
 
Seamus2626Author Commented:
Hey Martin, that solution didnt work for me.

Thanks guys

Seamus
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.