-1

I'm very new to VBA and I'm trying to develop a code that renames folders. I have a worksheet in Excel set up like this:

Column A:  Path of Folder
Column B:  Old Name
Column C:  New Name

This is a code that I found which works on a single folder. I'm not sure if its possible to make an extension of this code (such as a loop) or if I need to develop a whole new code. Any help would be much appreciated.

Sub rename_folder()
    Dim old_name, new_name As String
    For i = 2 To Sheets(1).Range("a1").End(xlDown).Row
        new_name = Left(Sheets(1).Cells(i, 1).Value, Len(Sheets(1).Cells(i, 1).Value) - Len(Sheets(1).Cells(i, 2).Value))
        new_name = new_name & Sheets(1).Cells(i, 3).Value
        old_name = Sheets(1).Cells(i, 1).Value
        Name old_name As new_name
    Next i
End Sub 
RubberDuck
  • 11,933
  • 4
  • 50
  • 95
  • 2
    How does this differ from yesterday's question? http://stackoverflow.com/questions/30892816/how-do-i-write-a-vba-code-to-rename-all-folders-under-a-root-folder – Stephen Kennedy Jun 18 '15 at 14:01

1 Answers1

0

I'm a bit confused over your question. You said the code you showed already worked for one folder... I don't see how that code could make any changes to a folder... it only manipulates data in Excel.

However, I cleaned up the code a bit:

Sub rename_folder()
    Dim old_name, new_name As String
    With Sheets(1)
        For i = 2 To .Range("a1").End(xlDown).Row
            new_name = Left(.Cells(i, 1).Value, Len(.Cells(i, 1).Value) - Len(.Cells(i, 2).Value))
            new_name = new_name & .Cells(i, 3).Value
            old_name = .Cells(i, 1).Value
            Name old_name As new_name
        Next i
    End With
End Sub
rohrl77
  • 3,277
  • 11
  • 47
  • 73