首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找到'TargetTable.Range.SpecialCells(xlCellTypeVisible).Copy _‘Destination:=Sheets("Sheet8").Range("A1")

找到'TargetTable.Range.SpecialCells(xlCellTypeVisible).Copy _‘Destination:=Sheets("Sheet8").Range("A1")
EN

Stack Overflow用户
提问于 2018-05-05 20:59:53
回答 1查看 75关注 0票数 0

我有一个名为"Staffdb“的工作表,其中有两个名为"PermTBL”和"StaffTBL“的表,以及相同的标题"Girls”、"ID“、"Hire_date”和"Status“。所有当前和历史上的员工都在PermTBL中。我想在"A“表示活动的状态字段上筛选PermTBL,然后将这些内容复制到空的StaffTBL中。在用状态向下箭头手动过滤PermTBL并选择"A“后,我开始测试代码,并得到一个明显的部分副本。我的代码是选项显式的

子PermTBLtoStaffTBL()

Dim rgnsrc As Range Dim rgndest Range

代码语言:javascript
复制
Set rgnsrc = Worksheets("Staffdb").Range("PermTBL")
Set rgndest = Worksheets("Staffdb").Range("StaffTBL")
rgnsrc.SpecialCells(xlCellTypeVisible).Copy rgndest

结束子对象

最后,作为一条附加信息,StaffTBL似乎有隐藏的行,3-7不可见,这似乎与我丢失的数据相对应。我试图揭开它的面纱,但无济于事。关于下一步该去哪里的建议?我必须遍历这个表,还是我在目的地犯了一个错误?这是个新手,第三世界的网速,再加上无法派人送书,这使得这一过程变得单调乏味。请耐心等待NewBee。

一条新的信息,我发现如果我取消隐藏整个工作表,正确的数据会出现在StaffTBL中,当然PermTBL的过滤器也会消失,所以很明显我是在正确的轨道上。我仍然希望通过编程(而不是手动)过滤PermTBL的意见和建议。我会继续搜索网站,但任何建议都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2018-05-05 21:15:32

代码语言:javascript
复制
Sub CopyData()

    Dim t As ListObject
    Dim t2 As ListObject

    Set t = ActiveSheet.ListObjects("PermTBL")
    Set t2 = ActiveSheet.ListObjects("StaffTBL")

    ' Remove all rows from StaffTBL table
    If Not t2.DataBodyRange Is Nothing Then
        t2.DataBodyRange.Rows.Delete
    End If

    ' Filter Status by "A"
    t.DataBodyRange.AutoFilter Field:=4, Criteria1:="A"
    ' Copy to first cell right below the table's header
    t.DataBodyRange.Copy t2.Range(1).Offset(1)
    ' Remove filter from PermTBL table
    t.DataBodyRange.AutoFilter

End Sub

更新

Example workbook

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50189720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档