powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Вставить название файла в скопированный диапазон
6 сообщений из 6, страница 1 из 1
Вставить название файла в скопированный диапазон
    #35924965
Юрий08
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

Написал небольшой макрос, который собирает все файлы в папке на один лист.
Проблема в том, что необходимо указать ( в первом пустом столбце ), в соответствии с скопированным диапазоном данных, название файла.

Подскажите, что и куда надо дописать. Над макросом не прикалываться))) Знаю, что сделан через одно место.

З.Ы. Почему у меня не отключается обновление экрана?

Sub CollectInfo()


Dim WBmacros As Workbook 'Ôàéë äëÿ âñòàâêè äàííûõ (ôàéë ñ ýòèì ìàêðîñîì)
Dim OriWB As Workbook 'îðèãèíàëüíûé ôàéë
Dim iTempFileName As String 'èìÿ ïîî÷åð¸äíî îòêðûâàåìîãî ôàéëà


With Application
.ScreenUpdating = False
.DisplayAlerts = False
Set WBmacros = ThisWorkbook


Const DirLoc As String = "C:\Îáðàáîòêà ôèëèàëîâ ÑÈÀ\"
iTempFileName = Dir(DirLoc & "*.xls")

Do While iTempFileName <> ""

Set OriWB = Workbooks.Open(Filename:=DirLoc & iTempFileName, ReadOnly:=True)

OriWB.Worksheets(1).Range("A1").CurrentRegion.Select
Selection.Resize(Selection.Rows.Count - 1).Offset(1).Select
Selection.Copy

WBmacros.Activate

With ActiveSheet
.UsedRange.Select
.Cells(.UsedRange.Rows.Count + .UsedRange.Row, 1).Select

End With


ActiveSheet.Paste
OriWB.Close saveChanges:=False

iTempFileName = Dir

Loop

.DisplayAlerts = True
.ScreenUpdating = True
End With

End Sub
...
Рейтинг: 0 / 0
Вставить название файла в скопированный диапазон
    #35925244
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не нужен миф, нужен total commander, там есть такая функция. копируем пути, вставляем на лист.
в вашем разбираться не стал: данные не оформлены, написано вы сами знаете...
допишите prosessXLS по своему усмотрению, типа

Sub ProsessXLS(что-то)
cells(i,1)=f.name
i=i+1
End Sub

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
'процедура проходит по всем файлам в папке
Sub eachFol()
Dim fso As FileSystemObject
Const sPath = "C:\Documents and Settings\" 'ваш путь
Dim b As Workbook
'Dim sh1b As Worksheet
'Dim sh2b As Worksheet
Dim fol1 As Folder, fol As Folder
Dim f As File
Dim n As Integer

Set b = ActiveWorkbook
Set fso = New FileSystemObject
Set fol1 = fso.GetFolder(sPath)
    'ходим по папкам в файле
    n =  3 
    For Each f In fol1.Files
        If Right(f.Name,  4 ) = ".xls" Then
            Application.ScreenUpdating = False
                Call ProsessXLS(f.Path, b, n)
            Application.ScreenUpdating = True
            n = n +  1 
        End If ' If Len(f.Name) > 3 Then
    Next f
End Sub
...
Рейтинг: 0 / 0
Вставить название файла в скопированный диапазон
    #35925250
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>не нужен миф
не нужен VBA (это у меня переключалка ru-en так сраватывает на сочетание VBA)
...
Рейтинг: 0 / 0
Вставить название файла в скопированный диапазон
    #35925465
Юрий08
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Про "миф" я догадался. А вот с остальным, как непросвещенному пользователю, сложно.

За совет про тотал командер спасибо, попробую разобраться.
...
Рейтинг: 0 / 0
Вставить название файла в скопированный диапазон
    #35925475
Юрий08
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как называется функция в тотал командер? И если можно, в кратце, как она мне поможет?
...
Рейтинг: 0 / 0
Вставить название файла в скопированный диапазон
    #35925536
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий08,
1)выделили что-то в окне TC, Выделение-Копировать полные имена файлов (или Копировать имена файлов в буфер).
2)открыли excel, ctrl+с

В TC много всего...
>>А вот с остальным, как непросвещенному пользователю, сложно.
Чё сложного-то. я же всё написал, как сделать, поправить только немножко. Мы уже бегаем циклом по всем файлам в папках, если воспользоваться поиском по форуму, то можно научиться ещё и заглядывать в каждую директорию... А далее к каждому f (где Dim f as File) применяем команду f.Path (возвращает путь к файлу) или f.Name (возвращает имя файла) и ставим их в ячейки нашей книги.
Код: plaintext
1.
2.
3.
4.
5.
i= 1  'присвоили счётчику первоначальное значение, т.к. нет цикла For i
For Each f in fol1 'цикл, проходящий по файлам папки
    Cells(i, 1 )=f.Name 'в ячейки (начиная с A1 при Cells (1,1,)) заносим имена файлов
    i=i+ 1  'добавляем к счётчику единицу, т.к. иначе новые значения будут располагаться каждый раз в ячейке A1, а не в столбик.
Next 'ну, это, думаю, ясно для чего :)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Вставить название файла в скопированный диапазон
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]