The views expressed in this blog are those of the owner and do not reflect the views or opinions of the owner’s employer. All content provided on this blog is for informational purposes only. The owner of this blog makes no representations as to the accuracy or completeness of any information on this site or found by following any link on this site. The owner will not be liable for any errors or omissions in this information nor for the availability of this information. The owner will not be liable for any losses, injuries, or damages from the display or use of this information. This policy is subject to change at any time. The owner is not an attorney, and nothing posted on this site should be construed as legal advice. Litigation Support Tip of the Night does not provide confirmation that any e-discovery technique or conduct is compliant with legal, regulatory, contractual or ethical requirements.
Featured on the ACEDS blog.
Follow me on Twitter and see How-To Videos on my YouTube channel.
New tips for paralegals and litigation support profesionals are posted to this site each night. Click on the blog headings for better detail.
Excel VBA Code to insert workbook name in multiple files
October 31, 2017
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