如果没有什么要复制的话,如何使If语句不复制

我知道这个问题听起来有点混乱,但我遇到的问题是我有一个行项目的数据库。 我使用macros来过滤和复制这些项目到某些部分。 在一个部分我没有在数据库中的任何项目(现在可能会在未来,但不知道)。 我注意到这个部分应该没有什么复制是复制数据库中的所有内容。 我一步一步地运行macros,看到它正确过滤,没有显示在数据库中,但由于某种原因,它复制数据库中的每个项目。 我不知道为什么这样做,但下面是我使用的代码。 我假设有一个If语句,我可以把'要select正确的数据来复制代码,说如果数据库没有过滤,那么不要复制任何东西,但我不知道该怎么做。 任何帮助深表感谢

'To filter data 'Sheets("Database").Select 'Range("A1").AutoFilter Field:=5, Criteria1:="2500", Operator:=xlOr, Criteria2:="All" 'Range("A1").AutoFilter Field:=6, Criteria1:="Adder" 'Range("A1").AutoFilter Field:=7, Criteria1:=Array("FL", "MF", "HF", "Furnace Eng", "Launder"), Operator:=xlFilterValues 'To select correct data to copy 'Dim I As Long 'I = Range("B" & Rows.Count).End(xlUp).Row 'Range("B2:B" & I).Copy 'To copy data 'Sheets("Quote Sheet").Select 'ActiveCell.Offset(1, 0).Select 'Selection.PasteSpecial Paste:=xlPasteValues 

要使用此方法复制过滤的数据( 未testing )。 我也使用上面的代码中的第三个自动筛选示例来演示.Offset的用法

  Dim Dim copyFrom As Range '~~> I am assuming that the Headers are in Row 1 '~~> Filter, offset(to exclude headers) and set the filtered range With .Range("A1") .AutoFilter Field:=7, Criteria1:=Array("FL", "MF", "HF", "Furnace Eng", "Launder"), _ Operator:=xlFilterValues Set copyFrom = .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow End With If Not copyfrom Is Nothing Then copyfrom.Copy '<~~ Copy the range End If 

我只是检查你的情况:

 If Range("B1").CurrentRegion.Rows.Count >1 Then