一个简单的问题: 我有2列,我想复制并粘贴而不考虑值等于0
A B
x 1
w 0
z 1
然后我需要的结果如下:
A B
x 1
z 1
欢迎任何评论/建议。 非常感谢
答案 0 :(得分:0)
答案 1 :(得分:0)
由于您未指定要粘贴数据的位置,因此我将粘贴在Sheet2
中第一个可用空白位置的新工作表(Col A
)上。我假设您在每张纸上都已经有标题。
Option Explicit
Sub Filter()
Dim ws1 As Worksheet: Set ws1 = ThisWorkbook.Sheets("Sheet1")
Dim ws2 As Worksheet: Set ws2 = ThisWorkbook.Sheets("Sheet2")
Dim ws1LastRow As Long: ws1LastRow = ws1.Range("A" & ws1.Rows.Count).End(xlUp).Row
Dim ws2LastRow As Long: ws2LastRow = ws2.Range("A" & ws2.Rows.Count).End(xlUp).Offset(1).Row
Application.ScreenUpdating = False
With ws1
If Not .AutoFilterMode Then .Range("A1").AutoFilter 'Check for filter
.Range("A1:B1").AutoFilter Field:=2, Criteria1:="<> 0" 'Apply filter (hide 0's)
.Range("A2:B" & ws1LastRow).Copy 'Copy
.AutoFilterMode = False 'Remove Filter
End With
ws2.Range("A" & ws2LastRow).PasteSpecial xlPasteValues 'Paste
Application.ScreenUpdating = True
Application.CutCopyMode = False
End Sub
您将需要将Sheet1
的每个实例与包含原始数据的工作表名称交换,并且您需要将Sheet2
的每个实例与您要粘贴数据表的名称交换。数据。