Помогите, пожалуйста, исправить код. Имеется 1 файл, в который из нескольких других файлов переносится информация. Нужно, чтобы напротив скопированной строки макрос прописывал имя файла, из которого он ее взял. У меня по коду получается так, что макрос вписывает название только в 1ю строку из нового файла, а все остальные остаются пустыми до данных из следующего файла.
что не так?
Код
i = 2
Set dirObj = mergeObj.Getfolder("C:\Users\......")
Set filesObj = dirObj.Files
For Each everyObj In filesObj
Set bookList = Workbooks.Open(everyObj)
... часть макроса с копированием строк
Dim fileName As String
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
fileName = fso.GetFilename(everyObj)
Workbooks("Quarter brandmap macro_test.xlsm").Sheets("copied").Range("AQ" & i).Value = fileName
Application.DisplayAlerts = False
bookList.Close
i = Cells(Rows.Count, 1).End(xlUp).Row + 1
Next
я добавила ваш код и странность.. он по 1му файлу, которого копировал заполнил имя файла на каждой строке. А вот по 2му почему только несколько первых, а остальные остались пустыми. При этом, если я добавляю в папку с файлами еще один новый файл, то он выдает ошибку "Run-time error '1004'. Application-defined or object-defined error". "Новый" файл точно такой же как предыдущее только с измененным названием файла
Можете файл приложить с полным кодом? Мария -, Если ваш код записать вот так:
Код
Dim FSO As Object, ifile As Object
Dim lrow&
Set FSO = CreateObject("Scripting.FileSystemObject")
lrow = Range("aq" & Rows.Count).End(xlUp).Row + 1
For Each ifile In FSO.getFolder("C:\Users\......").Files
' ....часть макроса с копированием строк
Range("aq" & lrow).Value = ifile.Path ' Записывает полный путь к файлу
Range("aq" & lrow).Value = ifile.ShortName ' Записывает только имя файла
lrow = lrow + 1
Next
Закомментируйте ту строку с записью данных которая вам не нужна