Макрос Excel для перемещения ячеек, соответствующих выражению, на одну ячейку вправо - PullRequest
0 голосов
/ 27 января 2011

Я хочу переместить все ячейки, соответствующие определенной строке поиска, на одну ячейку вправо в Excel 2011, но я полный нуб Excel.

Например, с помощью строки поиска «A»:

A A A _ _ B A A _

в

_ A A A _ B _ A A

НЕ

_ A _ A _ B _ A

Спасибо!

1 Ответ

2 голосов
/ 27 января 2011
Sub MoveRight()

    Dim rFound As Range
    Dim lFirstCol As Long
    Dim rSearch As Range

    Const sSEARCH As String = "A"

    Set rSearch = Sheet1.Cells
    'Find the first instance in the right most column
    Set rFound = rSearch.Find(sSEARCH, rSearch.Cells(1), xlValues, xlWhole, xlByColumns, xlPrevious, True)

    'If a cell was found
    If Not rFound Is Nothing Then
        'Record the column so we know when to stop
        lFirstCol = rFound.Column

        'loop through all the found cells
        Do
            rFound.Offset(0, 1).Value = rFound.Value
            rFound.ClearContents
            Set rFound = rSearch.FindPrevious(rFound)
        'stop when it wraps back around and finds the first
        'instance that you moved one cell to the right
        Loop Until rFound.Column > lFirstCol
    End If

End Sub

Убедитесь, что вы сохранили резервную копию вашего файла перед запуском этого макроса.Если он не делает то, что вы хотите, нет отмены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...