2011-01-27 18 views

答えて

2
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 

このマクロを実行する前に、必ずファイルのバックアップを保存してください。あなたが望むことをしなければ、元に戻すことはできません。

+0

大変感謝しています。 – fairidox

+0

私が書こうと思っていたものよりずっときれいでエレガントなコードです。私は 'Find'の使い方が好きです。 –

関連する問題