仅将 A1:A150 中不为空的行复制到 B 列

仅将 A1:A150 中不为空的行复制到 B 列

我将非常感激以下解决方案:仅将 A1:A150 中不为空白的行复制到 B 列或复制到另一张工作表。A 列中最多一半的行可以为空白。

答案1

怎么样:

Sub KopyKat()
    Dim K As Long, i As Long
    K = 1
    For i = 1 To 150
        If Cells(i, 1).Value <> "" Then
            Cells(i, 1).Copy Cells(K, 2)
            K = K + 1
        End If
    Next i
End Sub

答案2

以下是公式解答:

工作表截图

数组中输入(Ctrl++ ShiftEnter以下公式B1并复制粘贴/填充列:

{=IFERROR(INDEX(A:A,SMALL(IF($A$1:$A$150="",FALSE,ROW($A$1:A$150)),ROW())),"")}

答案3

您还可以使用filter函数(ctrl++ shiftL

然后制定自定义过滤规则来隐藏texts that contain (nothing or blank)

应用过滤器然后复制粘贴过滤的数据。

答案4

如果您想使用 vba 搜索整个列,我会使用以下命令:

Public Sub Copier()
Dim toRow As Integer
toRow = 1
Columns("A").Activate
For Each Value In Selection
    If Value Then
     Cells(toRow, 2).Value = Value
     toRow = toRow + 1
    End If
Next Value
End Sub

相关内容