true

Learn Microsoft Excel Training from the Best Tutors

• Affordable fees
• 1-1 or Group class
• Flexible Timings
• Verified Tutors

Search in

# VBA Tip: Repeating Emp Names N number of times using 4 different loops

Hi All,
This is a requirement from one of our student and here we are posting the question along with solution (this can be achieved using 4 different loops). In Column “J” there are few employee names which need to be repeated for “n” (this “n” is in cell “O1”) number of times in column “L”. Check the below screenshot for understanding the requirement.

Above requirement can be done using 4 different VBA loops. Here you go

Solving the above task using 1. For Next Loop

Sub EmpName_Recurring1()
Dim emp_loop As Integer
Dim source_lr As Integer
Dim destination_lr As Integer
For emp_loop = 1 To source_lr
destination_lr = ThisWorkbook.Sheets("Task").Cells(Rows.Count, "L").End(xlUp).Row + 1
Range(Cells(destination_lr, "L"), Cells(destination_lr + Range("Repeat_Count").Value - 1, "L")).Value =          Cells(emp_loop + 1, "J").Value
Next emp_loop
MsgBox "Task completed using For Next loop"

End Sub

Solving the above task using 2. For Each Loop

Sub EmpName_Recurring2()
Dim rng As Range
Dim source_lr As Integer
Dim destination_lr As Integer

For Each rng In Sheets("Task").Range("J2:J" & source_lr)
destination_lr = ThisWorkbook.Sheets("Task").Cells(Rows.Count, "L").End(xlUp).Row + 1
Range(Cells(destination_lr, "L"), Cells(destination_lr + Range("Repeat_Count").Value - 1, "L")).Value =          rng.Value
Next rng
MsgBox "Task completed using For Each loop"

End Sub

Solving the above task using 3. Do While Loop

Sub EmpName_Recurring3()
Dim rng As Range
Dim row_increment As Integer
Dim destination_lr As Integer
Do While Cells(row_increment + 2, "J").Value <> ""
destination_lr = ThisWorkbook.Sheets("Task").Cells(Rows.Count, "L").End(xlUp).Row + 1
Range(Cells(destination_lr, "L"), Cells(destination_lr + Range("Repeat_Count").Value - 1, "L")).Value =          Cells(row_increment + 2, "J").Value
row_increment = row_increment + 1
Loop
MsgBox "Task completed using Do While loop"

End Sub

Solving the above task using 4. Do Until Loop

Sub EmpName_Recurring4()
Dim rng As Range
Dim row_increment As Integer
Dim destination_lr As Integer
Do Until Cells(row_increment + 2, "J").Value = ""
destination_lr = ThisWorkbook.Sheets("Task").Cells(Rows.Count, "L").End(xlUp).Row + 1
Range(Cells(destination_lr, "L"), Cells(destination_lr + Range("Repeat_Count").Value - 1, "L")).Value =         Cells(row_increment + 2, "J").Value
row_increment = row_increment + 1
Loop
MsgBox "Task completed using Do Until loop"

End Sub

0 Dislike

## Other Lessons for You

How to add a diagonal line in a cell in MS EXCEL
Many a times we feel the need to use a cell to act as headers for data flowing in two directions -- Rows and columns and for this purpose we may want to add a diagonal line to accomodate the two headers...

Arrange and View Multiple Worksheets at Once in Excel
Arrange and View Multiple Worksheets at Once in Excel This feature allows you to view multiple worksheets at once from the same workbook at the same time. You need to follow beneath simple...

Flash Fill is only available in MS excel 13 and above versions. Flash fill is used to fill the data automatically in the below cells if a pattern is evident. It can also extract, insert or concatenate. Some...

### Looking for Microsoft Excel Training classes?

Learn from Best Tutors on UrbanPro.

Are you a Tutor or Training Institute?

Join UrbanPro Today to find students near you

X

### Looking for Microsoft Excel Training Classes?

The best tutors for Microsoft Excel Training Classes are on UrbanPro

• Select the best Tutor
• Book & Attend a Free Demo
• Pay and start Learning

### Learn Microsoft Excel Training with the Best Tutors

The best Tutors for Microsoft Excel Training Classes are on UrbanPro