如何根据条件将多个工作表中的行复制到新工作表中? | 您所在的位置:网站首页 › 若要将一个工作表的所有单元格都粘贴到当前 › 如何根据条件将多个工作表中的行复制到新工作表中? |
如何根据条件将多个工作表中的行复制到新工作表中?
作者:晓阳
最后修改时间:2019-09-10
假设您有一个包含三个工作表的工作簿,这些工作表的格式与下面的屏幕快照相同。 现在,您想要将这些工作表中的C列包含“已完成”文本的所有行复制到新工作表中。 您如何快速,轻松地解决此问题,而又不手动一一复制和粘贴它们? ![]() ![]() ![]() 根据条件将多个工作表中的行复制到具有VBA代码的新工作表中 根据条件将多个工作表中的行复制到具有VBA代码的新工作表中下面的VBA代码可以帮助您根据特定条件将工作簿中所有工作表中的特定行复制到新工作表中。 请这样做: 1。 按住 ALT + F11 键打开 Microsoft Visual Basic应用程序 窗口。 2。 点击 插页 > 模块,然后将以下代码粘贴到“模块窗口”中。 VBA代码:根据条件将多个工作表中的行复制到新工作表中 Public Sub CopyRows_ValuesAndNumberFormats() Dim xWs As Worksheet Dim xCWs As Worksheet Dim xRg As Range Dim xStrName As String Dim xRStr As String Dim xRRg As Range Dim xC As Integer On Error Resume Next Application.DisplayAlerts = False xStr = "Kutools for Excel" xRStr = "Completed" Set xCWs = ActiveWorkbook.Worksheets.Item(xStr) If Not xCWs Is Nothing Then xCWs.Delete End If Set xCWs = ActiveWorkbook.Worksheets.Add xCWs.Name = xStr xC = 1 For Each xWs In ActiveWorkbook.Worksheets If xWs.Name xStr Then Set xRg = xWs.Range("C:C") Set xRg = Intersect(xRg, xWs.UsedRange) For Each xRRg In xRg If xRRg.Value = xRStr Then xRRg.EntireRow.Copy xCWs.Cells(xC, 1).PasteSpecial xlPasteValuesAndNumberFormats xC = xC + 1 End If Next xRRg End If Next xWs Application.DisplayAlerts = True End Sub备注:在上面的代码中: 文本 ”完成”在此 xRStr =“已完成” 脚本指示您要基于其复制行的特定条件; C:C 摘要可点击此连结 设置xRg = xWs.Range(“ C:C”) 脚本指示条件所在的特定列。3。 然后按 F5 键运行此代码,并且具有特定条件的所有行已被复制并粘贴到当前工作簿中名为 Kutools for Excel 的新工作表中。看截图: ![]() ![]() |
CopyRight 2018-2019 实验室设备网 版权所有 |