【问题标题】:Select all non-blank cells and associated Rows选择所有非空白单元格和关联的行
【发布时间】:2016-07-12 19:50:21
【问题描述】:

为此,我一直在寻找超过 3 小时的公式或 vba 解决方案,但由于某种原因找不到任何东西。

我需要一些东西来查看一列,找到所有非空白单元格,然后将它们输出到其他地方。 这是数据的一个小示例表:

这是我想要输出的内容:

我发现了许多解决方案,其中大多数是 =value 和 =match 的组合,但我得到的结果要么为零,要么结果在列中包含不应包含空白的空白。

【问题讨论】:

    标签: excel-formula excel-2010


    【解决方案1】:

    试试这个宏

    Sub findBlankCells()
    
    Dim ws As Worksheet
    Dim lastrow As Long
    Dim i As Long
    Dim j As Long
    'change the sheet to whatever name sheet you have
    ws = ThisWorkbook.Sheets("Sheet1")
    'didn't chose A since it seems like you have more blank values there
    lastrow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
    'j represents the row to copy to
    j = 1
    'loop through all the rows
    For i = 1 To lastrow
    'only copy to I and J column if both do not equal blank
    If ws.Cells(i, "A") <> "" And ws.Cells(i, "B") <> "" Then
        ws.Cells(j, "I") = ws.Cells(i, "A")
        ws.Cells(j, "J") = ws.Cells(i, "B")
        'increase j if the statement is true to go on to the next row to copy to
        j = j + 1
    End If
    Next i
    End Sub
    

    【讨论】:

    • 以上宏确实有效。非常感谢。您可能会在第 6 行发现错误。将其更改为 set ws = ThisWorkbook.Sheets("Sheet1")。
    • 这非常有效,但是在更大的场景中,它不会输出所有的拟合标准。这是正在发生的更准确示例的屏幕截图(我无法显示真实的数据表)。最终目标是,如果 C 列中有一个非空白单元格,则输出该行。 link
    • 好吧,我知道我做错了什么。在第 16 行 If ws.Cells(i, "A") &lt;&gt; "" And ws.Cells(i, "B") &lt;&gt; "" Then 中,我应该将其更改为:If ws.Cells(i, "A") &lt;&gt; "" And ws.Cells(i, "A") &lt;&gt; "" Then。在我的数据表上交叉检查了它,一切都检查出来了。再次感谢您的帮助!
    • If ws.Cells(i,"A") &lt;&gt; "" And ws.Cells(i,"A") &lt;&gt; "" ThenIf ws.Cells(i,"A") &lt;&gt; "" Then 相同。它们是相同的参数,您不需要两次传递相同的参数。它应该适用于大数据,但您可以通过另一种方式处理此代码,根据您的图片并查看 A 列,您的代码也可能是 If ws.Cells(i,"A") = "yes" Then ,您的结果将更加具体,并且只有在一个单元格值为是,留下所有其他选项放入空白单元格,null,no N,等等
    • 对,我不敢相信我没有看到!谢谢你。另外,我会选择="yes" 选项,但在实时数据表中的“适合两者”列中,它实际上是一个主键列,因此每个值都不同。所以我觉得&lt;&gt;"" 更容易一些。
    猜你喜欢
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多