表(已过滤)为空时的DataBodyRange复制

时间:2019-08-28 07:11:57

标签: excel vba

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

因此,经过一些研究,我尝试了“ 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

因此,当前,如果有注释,它可以正常工作,但如果过滤后的表为空,则不能。

目标是将所有评论逐行显示。 过滤后,请您帮忙在空桌子旁走走吗?

最好, 维克托

0 个答案:

没有答案