从我的代码中可以看出,我正在移动(复制 - 因为我无法剪切和粘贴不是一个接一个的行的cos)只有可见行(在过滤后)到另一个工作表。
我遇到的问题是它们被粘贴为值,因此公式被杀死了。复制后我需要公式保留在新的工作表上。
Sub Step10()
Dim lLRow As Long
With Sheets("Sheet1")
lLRow = .Cells(.Rows.Count, 1).End(xlUp).Row
.Range("B:B").AutoFilter Field:=1, Criteria1:="E-mail"
.Range("B2:B" & lLRow).SpecialCells(xlCellTypeVisible).EntireRow.Copy Destination:=Sheets("Sheet2").Range("B" & Rows.Count).End(xlUp).Offset(1)
.AutoFilterMode = False
End With
完成上述操作后,我使用以下代码从Sheet1中删除行(已复制的行)。您是否还可以建议是否可以将可见行从Sheet1剪切/粘贴到Sheet2(PS。我更喜欢使用过滤与循环相对,以根据特定单元格值识别要复制的行,因为循环需要很长时间超过10k行的数据)。
Sub Step10cont()
'Delteing Emails in B:B in Sheet1, as previous code used copy/paste special values due to discontinued ranges
Dim lLRow As Long
Application.ScreenUpdating = False
With Sheets("Sheet1")
lLRow = .Cells(.Rows.Count, 1).End(xlUp).Row
.Range("B:B").AutoFilter Field:=1, Criteria1:="E-mail"
.Range("B2:B" & lLRow).SpecialCells(xlCellTypeVisible).EntireRow.Delete xlShiftUp
.AutoFilterMode = False
End With
Application.ScreenUpdating = True