返回 Excel 中某一行的所有字符串的转置列表

返回 Excel 中某一行的所有字符串的转置列表

在我的 Excel(适用于 Mac 2011)工作表中,范围 B2:2 包含大部分空单元格,但有些单元格包含字符串。我想将这些字符串打印到从 A12 开始的转置列表中。此列表应排除所有空单元格,并应打印(在连续单元格中)B2:2 中的所有字符串。

到目前为止,我已经尝试了{=INDEX($B$2:$E$2, 0, SMALL(IF(NOT(ISEMPTY($B$2:$E$2)), COLUMN($B$2:$E$2)), ROW(1:1)}各种网站和 Stack Exchange 答案所建议的方法,以及{=INDEX($B$2:$E$2, 0, SMALL(IF($B$2:$E$2<>"", COLUMN($B$2:$E$2)), ROW(1:1)。但是,当 B2 已填充时,这些公式只是简单地转置了从 A12 开始的整个范围。当 B2 未填充时,不会出现任何值。

我该如何继续?

答案1

Sub FillRange()
Dim rng As Range, cell As Range
Dim counter As Long: counter = 0
Set rng = Range("B2:E2")

For Each cell In rng
    If Not IsEmpty(cell) Then
       Range("A12").Offset(counter, 0) = cell
       counter = counter + 1
    End If
Next cell
End Sub

您可以使用宏轻松解决问题。

相关内容