基于另一个工作表

时间:2015-07-23 21:13:03

标签: excel vba excel-vba

我有一张工作簿,里面有很多相同的人员名单。他们中的一些人离开了,我们" group by"那些不再在这张纸上工作的人。但是,有很多选项卡,将大纲一个选项卡分组并使宏基本上将大纲复制到其余选项中会更容易。

示例:

约翰。 乔。 苏西。 克莱尔。 亚当。

如果我有五个标签,并且在第一个标签上将Susie和Adam分组,我可以使用什么来制作它,以便将Susie和Adam分组到其他标签中?

提前致谢。

编辑:

我为解决此问题而撰写的最新代码构思如下:

'DelSum
    With Sheet21

    'Resets Group By
    .Range("Position").ClearOutline

    'Groups Principals
    topRow = .Range("Position").Find(What:="Principal", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True).Row
    bottomRow = .Range("Position").Find(What:="Principal", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=True).Row
    topRow = topRow - 1

    Rows(topRow & ":" & bottomRow).Group

    End With

    'Groups those who do not work here
    For Each Cell In Sheet21.Range("lastMonth")
        lastRow = Cell.Row
        posRange = Sheet21.Range("B" & lastRow).Value
        If Application.WorksheetFunction.VLookup(posRange, Sheet7.Range("A5:L" & Sheet7.Range("A5").End(xlDown).Row), 9) = 1 Then
                If Cell.Value = 0 Then
                    Cell.Rows.Group
                End If
        End If
        Next Cell
    End With

Sheet7是员工的主要列表,第9列是我表示他们是否已离开练习(其中1表示他们离开)。 posRange指的是它们的名称,它也显示在Sheet7的第一列中。

此脚本的问题是VLookup公式出现1004错误(错误1004无法获取vlookup属性)。当我看到posRange时,它有一个人的名字,我可以在目的地范围内清楚地看到他们的名字。

1 个答案:

答案 0 :(得分:0)

创建一个名为“活动/非活动”的工作表(或“制表符”),其中所有列出的名单人员都在一列中,而第二列则将其标记为“活动”或“非活动”。然后,在每个其他工作表中,将带有vlookup的列插入到新的“活动/非活动”工作表中。然后,当人们被添加到您的名单中时,他们会被添加到此表中。由于所有列都看起来只有一张,你只需要在一个地方管理它。

然后可以使用自动过滤器完成“分组”。