Excel formula 选择所有非空白单元格和关联行

Excel formula 选择所有非空白单元格和关联行,excel-formula,excel-2010,Excel Formula,Excel 2010,我已经搜索了3个多小时的公式或vba解决方案,但由于某种原因,我什么也找不到 我需要一些东西来查看列,找到所有非空白单元格,然后将它们输出到其他地方。 下面是一个小的数据示例表: 下面是我想要输出的内容: 我发现了许多解决方案,其中大多数是=value和=match的组合,但我要么得到零结果,要么结果列中有空格,而这些空格不应该有空格。试试这个宏 Sub findBlankCells() Dim ws As Worksheet Dim lastrow As Long Dim i As Lo

我已经搜索了3个多小时的公式或vba解决方案,但由于某种原因,我什么也找不到

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

下面是我想要输出的内容:

我发现了许多解决方案,其中大多数是=value和=match的组合,但我要么得到零结果,要么结果列中有空格,而这些空格不应该有空格。

试试这个宏

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
子findBlankCells()
将ws设置为工作表
最后一排一样长
我想我会坚持多久
Dim j尽可能长
'将工作表更改为您拥有的任何名称工作表
ws=ThisWorkbook.Sheets(“Sheet1”)
'没有选择,因为您在那里似乎有更多的空白值
lastrow=ws.Cells(ws.Rows.Count,“B”).End(xlUp).Row
'j表示要复制到的行
j=1
'循环遍历所有行
对于i=1到最后一行
'仅复制到I列和J列(如果两者不等于空白)
如果ws.Cells(i,“A”)和ws.Cells(i,“B”)”,那么
ws.Cells(j,“I”)=ws.Cells(I,“A”)
ws.Cells(j,“j”)=ws.Cells(i,“B”)
'如果该语句为true,则增加j,以转到要复制到的下一行
j=j+1
如果结束
接下来我
端接头

上述宏确实有效。非常感谢你。您可能会在第6行发现错误。将其更改为设置ws=ThisWorkbook.Sheets(“Sheet1”)。这非常有效,但是在更大的场景中,它不会输出所有拟合条件。下面是一个更准确的例子(我无法显示真实的数据表)的屏幕截图。最终目标是,若列C中有一个非空单元格,它将输出该行。好吧,我知道我做错了什么。在第16行
如果ws.Cells(i,“A”)和ws.Cells(i,“B”)那么
,我应该将其更改为:
如果ws.Cells(i,“A”)和ws.Cells(i,“A”)那么
。在我的数据表上核对过了,所有的东西都核对过了。再次感谢你的帮助
如果ws.Cells(i,“A”)和ws.Cells(i,“A”)那么
如果ws.Cells(i,“A”)那么
相同。它们是相同的论点,你不需要通过相同的论点两次。它应该适用于大数据,但另一种方法是,根据您的pic并查看A列,您的代码也可能是
如果ws.Cells(i,“A”)=“yes”,那么
,您的结果将更加具体,并且只在单元格值为yes时工作,将所有其他选项放在空白单元格中,null,no,N,等等,真不敢相信我没看到!非常感谢。另外,我会选择
=“yes”
选项,但在实时数据表中的“Fits tware”列中,它实际上是一个主键列,因此每个值都是不同的。所以我觉得
更容易一些。