Excel VBA Code to insert workbook name in multiple files


Happy Halloween!

You can use the below visual basic code to insert the names of multiple workbooks in the first column of the files.

Note that you have to enter the path to the folder of the Excel files that you want to process on the line beginning, 'folder ='. The line beginning: With destinationWorkbook.Worksheets, you specify in parentheses the number of the worksheet you want the workbook name entered in.

So when you start with a folder like this:

. . . you can end up with the file names inserted in column A:

Public Sub Insert_Column_In_All_Workbooks_In_Folder() Dim folder As String, filename As String Dim destinationWorkbook As Workbook Dim lastRow As Long 'Folder containing the 48 workbooks folder = "C:\temp\excel\" If Right(folder, 1) <> "\" Then folder = folder & "\" filename = Dir(folder & "*.xls", vbNormal) While Len(filename) <> 0 'Debug.Print folder & filename Set destinationWorkbook = Workbooks.Open(folder & filename) With destinationWorkbook.Worksheets(1) lastRow = .Cells(.Rows.Count, "A").End(xlUp).row .Columns("A").Insert Shift:=xlToRight .Range("A1:A" & lastRow).Value = Left(filename, InStr(filename, ".") - 1) End With destinationWorkbook.Close True filename = Dir() ' Get next matching file Wend End Sub