如何从多个选项卡中优先select特定的行以复制到第一个选项卡/工作表上?

我创build了一个带有11个选项卡/工作表的Excel工作簿。 第一张表是在10个单独的部门优先次序之前的一个综合优先次序,各自在自己的表格上。 我在所有11张纸上使用了相同的列标题,列A是“分区优先”。 我想要做的是当任何行更新与10列中的任何一列中的数字,行被复制到第一个选项卡/表是“统一”选项卡。 例如,在销售和市场营销的表格3中,该团队在其中一个项目的A列中放置了3,现在将显示在Tab 1'Consolidated'上我是一个初学者,并且一直在寻找如何这样做包括使用一些IF语句,但是在复制该行时似乎没有任何特定于列的内容,或者在传输到主表单的数据被编号后仅限于特定的行。 任何帮助深表感谢。 或者任何其他具体问题只是让我知道。

增编评论:

我希望在第一个选项卡上显示任何选项卡(2-11)中列A中用数字指定的行。 所以,如果在选项卡/工作表3上,销售团队决定第15行列出的项目是他们的第一优先级,那么他们会在第15列中放置一个“1”。这会将整行复制到第一个标签页上这是优先事项的统一项目清单(所以表3第15行将被复制到表1,第2行)。 因此,列A中没有编号的任何内容都不会显示在第一个选项卡/表单上。

您可以实现一个Workbook_SheetChange ,它将覆盖所有的工作表(不包括第一个),这些工作表将在列A中对数值进行更改。

点击Alt + F11 ,当VBE打开时,请看左侧的Project Explorer 。 如果找不到项目浏览器,请点击Ctrl + R显示(或查看►项目浏览器)。 双击ThisWorkbook以显示工作簿代码表。 将以下内容粘贴到右侧窗格中,标题为Book1 – ThisWorkbook(Code)

 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Not Intersect(Target, Sh.Columns(1)) Is Nothing Then If Target.Row > 1 And Sh.Index > 1 And _ IsNumeric(Target) And Not IsEmpty(Target) Then On Error GoTo Fìn Application.EnableEvents = False Target.Resize(1, Target.CurrentRegion.Columns.Count).Copy _ Destination:=Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) End If End If Fìn: Application.EnableEvents = True End Sub 

点击Alt + Q返回到您的工作表。 input到工作表2-12的列A中的任何数字都将导致该行被复制到第一个工作表的第一个空白行。

编辑:删除优先级时添加项目删除

 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Not Intersect(Target, Sh.Columns(1)) Is Nothing Then If Target.Row > 1 And Sh.Index > 1 And _ IsNumeric(Target) And Not IsEmpty(Target) Then On Error GoTo Fìn Application.EnableEvents = False Target.Resize(1, Target.CurrentRegion.Columns.Count).Copy _ Destination:=Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) ElseIf Target.Row > 1 And Sh.Index > 1 And _ (IsEmpty(Target) Or Not IsNumeric(Target)) Then On Error GoTo Fìn Application.EnableEvents = False With Sheets(1) If CBool(Application.CountIf(.Columns(3), Target.Offset(0, 2).Value)) Then .Rows(Application.Match(Target.Offset(0, 2).Value, .Columns(3), 0)).EntireRow.Delete End If End With End If End If Fìn: Application.EnableEvents = True End Sub 

当从划分工作表中删除优先级时,上面将在第一个工作表中查找与列C中的项目关联的项目标识符。 如果优先级从3更改为1 ,它仍然会重复logging。 这种情况还没有得到充分解释,因为没有讨论处理这个问题的商业规则。