希望Excel在符合条件时剪切并粘贴一行信息

我为我的合作伙伴的家庭企业设立了一个优秀的电子表格,在那里她可以input与join企业的人有关的数据。 我正在寻找从该行的数据剪切和粘贴到一个单独的工作表取决于其中一个单元格的标准。 主表被称为“工作区”。

如果第6排的人同意join业务,则在单元格V6中放置“是”。 一旦input了“是”,我的目标是将A:G的列剪切并粘贴到“已连接”的表格上,并将该行的其余部分删除,最好是将下一行向上移动(如果可能的话) 。 数据将粘贴到“连接”工作表上的下一个空白行。

另一方面,如果第6行的人表示他们不感兴趣,那么将在单元格H6中放置“不感兴趣”。 一旦不感兴趣的input,我的目标是列A:G被剪切和粘贴到表“不感兴趣”,以及该行的其余部分被删除,如上所述。

每次添加新名称时是否也可以按字母顺序排列电子表格的sorting名称? 数据的起始行是6。

我希望这一切都是有道理的,真的希望有人能够协助。 在公式方面,我非常好,但是没有弄清楚从哪里开始。

这是我的代码到目前为止:

Sub Test() For Each Cell In Sheets("Workspace").Range("V:V") If Cell.Value = "Yes" Then matchRow = Cell.Row Rows(matchRow & ":" & matchRow).Select Selection.Copy Sheets("Joined").Select ActiveSheet.Rows(matchRow).Select ActiveSheet.Paste Sheets("Workspace").Select End If Next End Sub 

当前电子表格

这是你的一个很好的起点。 我在代码中添加了评论,所以你可以看到每一行都做了什么。

此子在V列中search“是”,并将列“A”的范围A:G复制到已join的图纸中。 然后删除发现“是”的整个行。

我想从这里你可以自己做“不接受”的第二部分。

 Sub Test() Dim MatchRow As Long, FirstRow As Long, LastRow As Long Dim Destination As Range Dim ws As Worksheet Set ws = Sheets("Workspace") 'define ws as sheet workspace (shortcut) FirstRow = 6 'First row with data below headline LastRow = ws.Cells(ws.Rows.Count, "V").End(xlUp).Row 'Get last used row in column V (so we don't need to go through the full column) Dim i As Long i = FirstRow Do While i <= LastRow 'start searching for "Yes" in FirstRow and end in LastRow If ws.Range("V" & i).Value = "Yes" Then MatchRow = ws.Range("V" & i).Row 'remember matched row number 'find last free row in column A of sheet Joined and remember in Destination With Sheets("Joined") Set Destination = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0) End With 'Copy range A:G from matched row to destination found above ws.Range("A" & MatchRow & ":G" & MatchRow).Copy Destination 'Delete copied entire row ws.Rows(MatchRow).EntireRow.Delete 'reduce LastRow by one (because we deleted one row) LastRow = LastRow - 1 Else 'go to next row i = i + 1 End If Loop End Sub