我对VBA还是很陌生,我正在尝试构建一个代码来检查是否有新数据。如果有任何新项目,则将它们复制到另一张纸上。
我在三列(B:D)中有数据,我有将其值复制为E:G的代码,并且我试图查看E列以查看是否有符合条件的新项目,然后这些粘贴到另一张纸上。
我尝试添加新列并使用Countifs公式。我的代码可以做到:如果value为零(结果为countif),则其值为新值,然后将范围复制到另一张纸的底部(摘要纸)。
在Countifs中添加几个条件使摘要表中的过滤器确实变慢了,几乎无法使用。因此,我正在尝试寻找一种无需另外的countifs列即可执行相同操作的替代方法。
任何输入将不胜感激。
这是以前的代码:
Dim numberrow As Integer
Application.ScreenUpdating = False
ActiveSheet.Range("$A$4:$I$2141").AutoFilter Field:=2, Criteria1:="0"
numberrow = WorksheetFunction.CountIf(Range("b4:b5000"), "0")
If numberrow > 0 Then
MsgBox "New Items: " & WorksheetFunction.CountIf(Range("b4:b5000"), "0")
Columns("B:B").Select
Selection.EntireColumn.Hidden = True
Sheets("Std Data").Range("a5: " & "c5000").SpecialCells(xlCellTypeVisible).Copy
Sheets("Std Trends").Activate
Sheets("Std Trends").Range("b" & Rows.Count).End(xlUp).Offset(1).EntireRow.Resize(numberrow).PasteSpecial xlPasteValues
LR = ActiveSheet.UsedRange.Rows.Count
Range("n7:p7").AutoFill Destination:=Range("n7:p" & LR)
Else
MsgBox "No New Items"
ActiveSheet.Range("$A$4:$I$2141").AutoFilter Field:=2
End If
End Sub