在我的 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
您可以使用宏轻松解决问题。