首页 > 解决方案 > 表(已过滤)为空时的 DataBodyRange 副本

问题描述

我有数据库(excel表),其中包含我需要将评论复制到其他工作表的答案。每个问题的答案都在不同的列中。目前,如果有答案,我的代码可以正常工作。但如果没有,它会返回整个数据库。

因此,经过一些研究,我尝试了 If DataBodyRange Is Nothing 但看起来代码被忽略了。结果与没有这条线相同。

Sub Filter_Comments()

Dept = "Science"
WS = "Comments"

'1st question comments
Worksheets("Database").ListObjects("Table1").Range.AutoFilter Field:=21, Criteria1:=Sheets("Dashboard").Range("A7").Value
Worksheets("Database").ListObjects("Table1").Range.AutoFilter Field:=6, Criteria1:=Dept
Worksheets("Database").ListObjects("Table1").Range.AutoFilter Field:=8, Criteria1:="<>"
If Not Worksheets("Database").ListObjects("Table1").ListColumns(1).DataBodyRange Is Nothing Then
    Worksheets("Database").ListObjects("Table1").ListColumns(6).DataBodyRange.Copy
    Worksheets(WS).Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
    Worksheets("Database").ListObjects("Table1").ListColumns(8).DataBodyRange.Copy
    Worksheets(WS).Cells(Rows.Count, 3).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
    Worksheets("Database").ListObjects("Table1").Range.AutoFilter
End If

'2st question comments
Worksheets("Database").ListObjects("Table1").Range.AutoFilter Field:=21, Criteria1:=Sheets("Dashboard").Range("A7").Value
Worksheets("Database").ListObjects("Table1").Range.AutoFilter Field:=6, Criteria1:=Dept
Worksheets("Database").ListObjects("Table1").Range.AutoFilter Field:=10, Criteria1:="<>"
If Not Worksheets("Database").ListObjects("Table1").ListColumns(1).DataBodyRange Is Nothing Then
    Worksheets("Database").ListObjects("Table1").ListColumns(6).DataBodyRange.Copy
    Worksheets(WS).Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
    Worksheets("Database").ListObjects("Table1").ListColumns(10).DataBodyRange.Copy
    Worksheets(WS).Cells(Rows.Count, 3).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
    Worksheets("Database").ListObjects("Table1").Range.AutoFilter
End If

End Sub

因此,如果有评论,目前它可以正常工作,但如果过滤表为空,则不能。

目标是让所有评论一一排成一行。过滤后,您能帮忙在空桌子周围走动吗?

最好的,维克托

标签: excelvba

解决方案


推荐阅读