I am in need of help with VBA code that will copy all rows where cells in column A is red and then paste the entire row into a new worksheet.
This one is above my pay grade.
Can anyone help?
JG
![]() |
Patch reliability is unclear. Unless you have an immediate, pressing need to install a specific patch, don't do it. |
SIGN IN | Not a member? | REGISTER | PLUS MEMBERSHIP |
Home » Forums » AskWoody support » Productivity software by function » MS Excel and spreadsheet help » Macro to copy row based on color
The following will look at the cells in col A of the activeworksheet and copy them to the same row in a new worksheet:
Option Explicit Sub CopyRedRowsAsIs() Dim wks As Worksheet Dim wNew As Worksheet Dim lRow As Long Dim x As Long Set wks = ActiveSheet lRow = wks.Cells.SpecialCells(xlCellTypeLastCell).Row Set wNew = Worksheets.Add For x = 1 To lRow If wks.Cells(x, 1).Interior.Color = vbRed Then wks.Cells(x, 1).EntireRow.Copy wNew.Cells(x, 1) End If Next End Sub
If you want to not keep the same row as the original, but group them together in the new worksheet, the following code will do that
Option Explicit Sub CopyRedRowsGroup() Dim wks As Worksheet Dim wNew As Worksheet Dim lRow As Long Dim lNewRow As Long Dim x As Long Set wks = ActiveSheet lRow = wks.Cells.SpecialCells(xlCellTypeLastCell).Row Set wNew = Worksheets.Add lNewRow = 1 For x = 1 To lRow If wks.Cells(x, 1).Interior.Color = vbRed Then wks.Cells(x, 1).EntireRow.Copy wNew.Cells(lNewRow, 1) lNewRow = lNewRow + 1 End If Next End Sub
If you want something different, you will have to be more specific…
Steve
The following will look at the cells in col A of the activeworksheet and copy them to the same row in a new worksheet:
Code:Option Explicit Sub CopyRedRowsAsIs() Dim wks As Worksheet Dim wNew As Worksheet Dim lRow As Long Dim x As Long Set wks = ActiveSheet lRow = wks.Cells.SpecialCells(xlCellTypeLastCell).Row Set wNew = Worksheets.Add For x = 1 To lRow If wks.Cells(x, 1).Interior.Color = vbRed Then wks.Cells(x, 1).EntireRow.Copy wNew.Cells(x, 1) End If Next End SubIf you want to not keep the same row as the original, but group them together in the new worksheet, the following code will do that
Code:Option Explicit Sub CopyRedRowsGroup() Dim wks As Worksheet Dim wNew As Worksheet Dim lRow As Long Dim lNewRow As Long Dim x As Long Set wks = ActiveSheet lRow = wks.Cells.SpecialCells(xlCellTypeLastCell).Row Set wNew = Worksheets.Add lNewRow = 1 For x = 1 To lRow If wks.Cells(x, 1).Interior.Color = vbRed Then wks.Cells(x, 1).EntireRow.Copy wNew.Cells(lNewRow, 1) lNewRow = lNewRow + 1 End If Next End SubIf you want something different, you will have to be more specific…
Steve
This macro works well for my needs but I have tried to modify it in order to look for at more than one column but I have not been successful… How would I need to modify this macro (CopyRedRowsGroup) in order to look at column A to Z? Thank you in advance!
Donations from Plus members keep this site going. You can identify the people who support AskWoody by the Plus badge on their avatars.
AskWoody Plus members not only get access to all of the contents of this site -- including Susan Bradley's frequently updated Patch Watch listing -- they also receive weekly AskWoody Plus Newsletters (formerly Windows Secrets Newsletter) and AskWoody Plus Alerts, emails when there are important breaking developments.
Welcome to our unique respite from the madness.
It's easy to post questions about Windows 11, Windows 10, Win8.1, Win7, Surface, Office, or browse through our Forums. Post anonymously or register for greater privileges. Keep it civil, please: Decorous Lounge rules strictly enforced. Questions? Contact Customer Support.
Want to Advertise in the free newsletter? How about a gift subscription in honor of a birthday? Send an email to sb@askwoody.com to ask how.
Mastodon profile for DefConPatch
Mastodon profile for AskWoody
Home • About • FAQ • Posts & Privacy • Forums • My Account
Register • Free Newsletter • Plus Membership • Gift Certificates • MS-DEFCON Alerts
Copyright ©2004-2025 by AskWoody Tech LLC. All Rights Reserved.