我正在尝试将过滤后的数据从一张纸复制到另一张纸。它将所有内容复制到同一行。
如何填充所有行而不是将它们复制到同一行上?
这是我修改的代码:
Private Sub Workbook_Open()
Dim i, LastRow
LastRow = Sheets("Scheduled WO's").Range("A" & Rows.Count).End(xlUp).Row
Sheets("Branden").Range("A2:Q10000").ClearContents
For i = 2 To LastRow
If Sheets("Scheduled WO's").Cells(i, "G").Value = "Branden" Then
Sheets("Scheduled WO's").Cells(i, "G").EntireRow.Copy Destination:=Sheets("Branden").Range("A" & Rows.Count).End(xlUp).Offset(1)
End If
Next
End Sub
最佳答案
你必须取消声明
Sheets("Branden").Range("A2:Q10000").ClearContents
在它所在的工作簿的每个开口处清除“Branden”工作表单元格
此外,由于您需要过滤,您可能需要使用 Autofilter并避免循环通过单元格
Private Sub Workbook_Open()
With Worksheets("Scheduled WO's")
With .Range("G1:G" & .Cells(.Rows.Count, 1).End(xlUp).Row)
.AutoFilter field:=1, Criteria1:="Branden"
If Application.WorksheetFunction.Subtotal(103, .Cells) - 1 > 0 Then .Offset(1).Resize(.Rows.Count - 1).SpecialCells(XlCellType.xlCellTypeVisible).EntireRow.Copy Worksheets("Branden").Range("A" & Rows.Count).End(xlUp).Offset(1)
End With
.AutoFilterMode = False
End With
End Sub
关于excel - 将过滤后的数据从一张表复制到另一张表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40272678/