Written by Allen Wyatt (last updated August 2, 2024)
This tip applies to Excel 2007, 2010, 2013, 2016, 2019, and Excel in Microsoft 365
Marian wonders if there is a way to copy an entire row from one worksheet to another worksheet based on the occurrence of a specific text value ("yes") in column E of the row. Vlookup doesn't seem to work for this type of evaluation.
If you only need to do this type of task sporadically, then you can simply use the filtering capabilities of Excel. Turn on filter and filter your data so it only shows rows that have "yes" in column E. Copy the visible rows and paste them into whatever worksheet you want.
If you have to do the task more often, you could create a macro to make the copying a snap. The following macro examines the first 1,000 rows of Sheet1 and copies to Sheet2 any rows containing "yes" in column E.
Sub CopyYes() Dim c As Range Dim j As Integer Dim Source As Worksheet Dim Target As Worksheet ' Change worksheet designations as needed Set Source = ActiveWorkbook.Worksheets("Sheet1") Set Target = ActiveWorkbook.Worksheets("Sheet2") J = 1 ' Start copying to row 1 in target sheet For Each c In Source.Range("E1:E1000") ' Do 1000 rows If c = "yes" Then Source.Rows(c.Row).Copy Target.Rows(j) j = j + 1 End If Next c End Sub
Note that the macro will overwrite any information already on Sheet2. It also is not "dynamic," meaning that if the values in column E change and you want the rows in Sheet2 to reflect those changes, then the macro won't help.
Additional information about automatically copying information from one worksheet to another can be found on this website:
https://www.mrexcel.com/forum/excel-questions/602635- automatically-move-entire-rows-one-worksheet-into- another-worksheet-same-workbook.html
Even though the URL is shown on three lines here, it is all a single URL. You'll want to make sure you get it all into your browser.
Note:
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (13399) applies to Microsoft Excel 2007, 2010, 2013, 2016, 2019, and Excel in Microsoft 365.
Comprehensive VBA Guide Visual Basic for Applications (VBA) is the language used for writing macros in all Office programs. This complete guide shows both professionals and novices how to master VBA in order to customize the entire Office suite for their needs. Check out Mastering VBA for Office 2010 today!
When you are developing a worksheet for others to use, you may want to have entries in a particular cell (or cells) be ...
Discover MoreWhen you select a cell, you typically do so to see what the cell contains to to make changes to the cell. How Excel ...
Discover MoreBefore you go about deleting rows and columns helter-skelter, it is a good idea to determine if there is anything in the ...
Discover MoreFREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
2021-09-16 17:22:09
Adam
Hello, is there a way to do exactly this but with a text string? Help very much appreciated
2021-05-21 12:10:33
John
This worked great for me. Anyway to add more source worksheets?
2020-11-13 17:02:40
@ tania
In Allen Wyatt's macro, replace
If c = "yes" Then
with
If c = "yes" Or c="no" or c="maybe" Then
Alan Elston
2020-11-12 16:59:23
tania
What if I have multiple values to search for eg "yes" no" "maybe"
2020-08-24 12:44:16
Gregg
Great tip! The link to Mr. Excel's forum doesn't seem to be working. Hoping you can re-post. Thanks!
Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.
FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2025 Sharon Parq Associates, Inc.
Comments