Заполните столбец B столбцом A - PullRequest
1 голос
/ 31 октября 2019

Итак, у меня есть две колонки. В столбце A содержится содержимое с тегами <>, а в столбце B - [].

1    <hi>     [hi]
2    hello    bye
3    </hi>    [/hi]

Столбец B имеет фильтр сверху, и оба столбца фильтруются, так что ячейки с <> и [] остаютсяout, а затем я выбираю весь столбец A и перемещаю его в B (с небольшим знаком «плюс» внизу или вверху выделения). Конечный результат будет примерно таким, когда он не отфильтрован:

1    <hi>     [hi]
2    hello    hello
3    </hi>    [/hi]

Поэтому я создаю для этого макрос, и все работает нормально, пока не достигнет Selection.FillRight

  Selection.AutoFilter
    ActiveSheet.Range("$B:$B").AutoFilter Field:=1, Criteria1:="<>*[*", _
        Operator:=xlAnd
    Range("A1:A25").Select
    Selection.FillRight
    ActiveSheet.Range("$B:$B").AutoFilter Field:=1
End Sub

Я пытался использовать этот

Selection.AutoFilter
    ActiveSheet.Range("B1:B" & Range("B" & Rows.Count).End(xlUp).Row)

или

Selection.AutoFilter
    ActiveSheet.Range("$B$1:$B$25")

, но он тоже не будет работать. Есть идеи, как заполнить весь (отфильтрованный) контент из столбца A в столбец B? Спасибо!

1 Ответ

0 голосов
/ 31 октября 2019

Кажется, что это ошибка в версии VBA FillRight.

Вот альтернатива (которая позволяет избежать этого неприятного выбора / выбора)

Sub Demo()
    Dim ws As Worksheet
    Dim r As Range, cl As Range

    Set ws = ActiveSheet ' or a specific sheet
    Set r = ws.AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible)
    For Each cl In r
        cl.Offset(0, 1) = cl.Value ' or cl.Formula
    Next
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...