复制并粘贴没有特定值的

时间:2018-06-28 21:58:01

标签: excel vba if-statement

一个简单的问题: 我有2列,我想复制并粘贴而不考虑值等于0

A B
x 1
w 0
z 1

然后我需要的结果如下:

A B
x 1
z 1

欢迎任何评论/建议。 非常感谢

2 个答案:

答案 0 :(得分:0)

  • 复制/粘贴所有内容
  • 然后在目标工作表中使用CTRL + H将“ 0”替换为“”
  • 然后按F5>“特殊...”>“空白”
  • 然后按CTRL +“-”并选择“整个行”。

答案 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的每个实例与您要粘贴数据表的名称交换。数据。