我想检查这个过滤的表是否为空,否则当表没有数据时它最终会复制整个列。但是,当我这样做时,我得到一个错误,因为specialCells是空的。我想知道是否有办法解决这个问题。
numberRows = Range("Table13[Store '#]").SpecialCells(xlCellTypeVisible)
Selection.Copy
Sheets("Style-store report").Select
Cells(7, (3 + ((i - 4) * 3))).Select
ActiveSheet.Paste
答案 0 :(得分:1)
试试这个:
Dim rng As Range
'ignore any error if there are no visible rows...
On Error Resume Next
Set rng = Range("Table13[Store '#]").SpecialCells(xlCellTypeVisible)
On Error Goto 0 'stop ignoring errors
If Not rng Is Nothing Then
rng.Copy
Sheets("Style-store report").Select
Cells(7, (3 + ((i - 4) * 3))).Select
ActiveSheet.Paste
End If
答案 1 :(得分:0)
您可以做的是检查表格的可见行数,包括标题,这样,如果没有可见行,您可以避免特殊单元格为0的错误并获得至少计数为 1。
numberRows = ActiveSheet.ListObjects("Table13").Range.SpecialCells(xlCellTypeVisible).Rows.Count-1
if numberRows>0 then
Selection.Copy
Sheets("Style-store report").Select
Cells(7, (3 + ((i - 4) * 3))).Select
ActiveSheet.Paste
End If