简体   繁体   中英

Copy filename from several workbooks to cells in another workbook

I have a folder with alot of workbooks where i need to copy the file names (and some other data) to a master workbook. I found a code to import the data but is can't seem to import the file name.

After the "' >>>>>> Adapt this part" I tried to write some code to copy and paste the filename but it doesn't seem to work.

I use the part outside the "' >>>>>> Adapt this part" to copy some other data so I only need some code to fit in insted of my not working code :)

Sub Import_to_Master()
    Dim sFolder As String
    Dim sFile As String
    Dim wbD As Workbook, wbS As Workbook

    Application.ScreenUpdating = False
    Set wbS = ThisWorkbook
    sFolder = wbS.Path & "\"

    sFile = Dir(sFolder)
    Do While sFile <> ""

        If sFile <> wbS.Name Then
            Set wbD = Workbooks.Open(sFolder & sFile)

             ' >>>>>> Adapt this part

            WName = ActiveWorkbook.Name
            WName.Copy
            Sheets("Combined").Range("N" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
            Application.CutCopyMode = False

             ' >>>>>>

            wbD.Close savechanges:=True 'close without saving

        End If

        sFile = Dir 'next file
    Loop
    Application.ScreenUpdating = True
End Sub
Sub Import_to_Master()

    Dim sFolder As String
    Dim sFile As String
    Dim wbD As Workbook, wbS As Workbook

    Application.ScreenUpdating = False
    Set wbS = ThisWorkbook
    sFolder = wbS.Path & "\"

    sFile = Dir(sFolder)
    Do While sFile <> ""

        If sFile <> wbS.Name Then
            Set wbD = Workbooks.Open(sFolder & sFile)

             ' >>>>>> Adapt this part

            wbS.Sheets("Combined").Range("N" & wbS.Sheets("Combined").Rows.Count).End(xlUp).Offset(1, 0).Value = sFile

             ' >>>>>>

            wbD.Close savechanges:=True 'close without saving

        End If

        sFile = Dir 'next file
    Loop
    Application.ScreenUpdating = True
End Sub

You can directly use the object wbD and its property .Name .

I have also added a reference to the Sheet("Combined") for a better readability :

Sub Import_to_Master()
    Dim sFolder As String
    Dim sFile As String
    Dim wbD As Workbook, wbS As Workbook
    Dim wSc As Worksheet

    Application.ScreenUpdating = False
    Set wbS = ThisWorkbook
    '''Define the sheet
    Set wSc = wbS.Sheets("Combined")
    sFolder = wbS.Path & "\"

    sFile = Dir(sFolder)
    Do While sFile <> ""

        If sFile <> wbS.Name Then
            Set wbD = Workbooks.Open(sFolder & sFile)

             ' >>>>>> Adapt this part
            wSc.Range("N" & wSc.Rows.Count).End(xlUp).Offset(1, 0).value = wbD.Name

             ' >>>>>>

            wbD.Close savechanges:=True 'close without saving

        End If

        sFile = Dir 'next file
    Loop
    Application.ScreenUpdating = True
End Sub

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM