Excel 在循环期间刷新数据

Excel 在循环期间刷新数据,excel,vba,Excel,Vba,我正在从一张工作表中获取数据,并希望将其显示在另一张工作表上,以便检查在不久的将来是否必须执行某些操作 我正在扫描所有有“计划”案例的数据,并在我的工作表中登记符合规范的数据 问题在于,每个数据点都会覆盖上一个数据点-仅显示最后一个数据点 Dim i As Integer Dim lastRowS2 As Long Dim lastRowS3 As Long lastRowS2 = Sheets(2).Cells(Rows.Count, "A").End(xlUp).Row i = 5 For

我正在从一张工作表中获取数据,并希望将其显示在另一张工作表上,以便检查在不久的将来是否必须执行某些操作

我正在扫描所有有“计划”案例的数据,并在我的工作表中登记符合规范的数据

问题在于,每个数据点都会覆盖上一个数据点-仅显示最后一个数据点

Dim i As Integer
Dim lastRowS2 As Long
Dim lastRowS3 As Long

lastRowS2 = Sheets(2).Cells(Rows.Count, "A").End(xlUp).Row
i = 5
For j = i To lastRowS2
    Select Case Sheets(2).Range("O" & j)
        Case Is = "-"
        Case Is = "TO PLAN"
        lastRowS3 = Sheets(3).Cells(Rows.Count, "A").End(xlUp).Row
        Sheets(3).Range("A" & lastRowS3) = Sheets(2).Range("C" & j)

    End Select
'MsgBox j
Next j
是否有办法使所有符合条件的数据正确显示


谢谢您的帮助,请原谅我的英语,我有点生疏。

扩展我的注释,您的代码可以重构如下(注释中的解释):

您还可以避免循环并使用
Autofilter()
方法:

With Sheets(2) ' reference your sheet object
    With .Range("A4:O" & .Cells(.Rows.Count, "A").End(xlUp).Row) ' reference referenced sheet range spanning from "O4" to column A last not empty cell 
        .AutoFilter field:=15, Criteria1:="TO PLAN"' filter referenced range on its 15th filed (column O) with "TO PLAN" value
        .Resize(.Rows.Count - 1, 1).Offset(1).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets(3).Cells(Rows.Count, "A").End(xlUp).Offset(1) ' copy referenced range first column filtered cells skipping first row (header) to Sheet(3) column A first empty cell after last not empty one
    End With
    .AutoFilterMode = False
End With

展开我的注释,您的代码可以重构如下(注释中的解释):

您还可以避免循环并使用
Autofilter()
方法:

With Sheets(2) ' reference your sheet object
    With .Range("A4:O" & .Cells(.Rows.Count, "A").End(xlUp).Row) ' reference referenced sheet range spanning from "O4" to column A last not empty cell 
        .AutoFilter field:=15, Criteria1:="TO PLAN"' filter referenced range on its 15th filed (column O) with "TO PLAN" value
        .Resize(.Rows.Count - 1, 1).Offset(1).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets(3).Cells(Rows.Count, "A").End(xlUp).Offset(1) ' copy referenced range first column filtered cells skipping first row (header) to Sheet(3) column A first empty cell after last not empty one
    End With
    .AutoFilterMode = False
End With

使用
表(3).范围(“A”和最后一行3+1)
。或
lastRowS3=Sheets(3)。单元格(Rows.Count,“A”)。End(xlUp)。Offset(1)。Row
我的awnser本质上是,与roach house
Sheets(3)略有不同。范围(“A”&lastRowS3+1)
。或
lastRowS3=Sheets(3)。单元格(Rows.Count,“A”)。End(xlUp)。Offset(1)。Row
My awnser本质上与