На моем листе 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) . Однако эти формулы просто транспонировали весь диапазон, начиная с A12, когда B2 заполнен. Когда B2 не заполнен, значения не отображаются.

Как мне поступить?

1 ответ1

0
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

Вы можете легко решить вашу проблему с помощью макроса.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .