【问题标题】:How to hide blank rows in excel via expression?如何通过表达式隐藏excel中的空白行?
【发布时间】:2018-11-17 02:44:24
【问题描述】:

我在 excel 中有 2 张工作表(Sheet1、Sheet2)
Sheet1

Sheet1 有 2 列 A、B 和 6 行数据。

Sheet2
Sheet2 有 1 列 A,单元格 A1=if(sheet1!a1="ali", a1,"") 通过增加行号(如在 ExCel 中)在 6 行中使用相同的公式。 公式运行良好,我只想要与表达式匹配的值,而不是像我在 sn-p 中显示的空白行,我该怎么做?

table {
    font-family: arial, sans-serif;
    border-collapse: collapse;
    width: 100%;
}

td, th {
    border: 1px solid #dddddd;
    text-align: left;
    padding: 8px;
}

tr:nth-child(even) {
    background-color: #dddddd;
}
<table>
  <tr>
    <th>Sheet1!A</th>
    <th>Sheet!B</th>
    <th>Sheet2!C</th>
  </tr>
  <tr>
    <td>Ali</td>
    <td>100</td>
    <td>100</td>
  </tr>
  <tr>
    <td>Irfan</td>
    <td>500</td>
    <td><i>i don't want this</i></td>
  </tr>
  <tr>
    <td>Irfan</td>
    <td>500</td>
    <td><i>i don't want this</i></td>
  </tr>
  <tr>
    <td>Sufyan</td>
    <td>1000</td>
    <td><i>i don't want this</i></td>
  </tr>
  <tr>
    <td>Owais</td>
    <td>900</td>
    <td><i>i don't want this</i></td>
  </tr>
  <tr>
    <td>ali</td>
    <td>600</td>
    <td>600</td>
  </tr>
</table>

【问题讨论】:

  • 为什么不只过滤 ALI 上的第一张纸?
  • 您需要一个返回所有非空行的数组公式,而不是简单的if 公式。
  • 我在 sheet1 和 sheet2 上发布日记帐分录,我只想要与客户名称匹配的值?
  • #banana 你能告诉我上面例子的公式吗!

标签: vba excel ms-office


【解决方案1】:

为什么不使用自动过滤和复制?您的数据需要设置为表格,您可以通过选择填充的单元格并按 Ctrl + T 来执行此操作;确保你有标题。

Option Explicit
Public Sub test()

    With Worksheets("Sheet1").ListObjects("Table1").Range
    .AutoFilter
    .AutoFilter Field:=1, Criteria1:="Ali"
    .Range("Table1").Copy Worksheets("Sheet2").Range("A1")
    End With

End Sub

或者如果复制到下一个可用行使用:

Option Explicit
Public Sub test()
    Dim wsSource As Worksheet, wsTarget As Worksheet

    Set wsSource = ThisWorkbook.Worksheets("Sheet1") '<==Change name appropriately
    Set wsTarget = ThisWorkbook.Worksheets("Sheet2")
    With wsSource.ListObjects("Table1").Range    '<==Change table name appropriately
        .AutoFilter
        .AutoFilter Field:=1, Criteria1:="Ali"
        .Range("Table1").Copy wsTarget.Range("A" & wsTarget.Cells(wsTarget.Rows.Count, "A").End(xlUp).Row + 1)
    End With
End Sub

过滤后复制前的数据(带标题):

【讨论】:

  • 这有帮助吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-28
  • 1970-01-01
  • 1970-01-01
  • 2016-09-06
  • 2010-11-11
相关资源
最近更新 更多