powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / макрос поиска строк файла Exell-я на другом диске
8 сообщений из 8, страница 1 из 1
макрос поиска строк файла Exell-я на другом диске
    #33488346
manchini
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день! проблема в следующем...
есть на одном диске папка с файлами, отсканированного вида и формата dbf,doc, еще пару видов расширения( можно чтоб было одно расширение)
условно:

123.pdf
1234.doc
12345.pdf
....
и есть на другом диске файл в exell, состоящий из 5 столбцов, один из которых это те же самые номера, но естевственно в виде числовых значений
стобец А
строка1 123
строка2 1234
..... .....

имена файлов совпадают со значением в строчках таблицы Exell, но не для всех значений в стобце могут быть выложены файлы, как можно быстро было бы проверить к каким значениям файлы выложены, а к каким нет, и к примеру те строчки к которым нет файлов поместить в отдельный столбик , например ????

заранее огромное спасибо
...
Рейтинг: 0 / 0
макрос поиска строк файла Exell-я на другом диске
    #33488602
Программа в Excel.

Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
Private Const strPath As String = "D:\2\"

Public Sub FindFiles()
    
    Dim strFile As String
    Dim ws As Worksheet
    Dim rng As Range
    Dim blnFlag As Boolean
    
    Set ws = ThisWorkbook.Worksheets("Лист1")
    Set rng = ws.Range("A1:A3")
    
    For Each rng In rng
        
        blnFlag = False
        strFile = Dir(strPath)
        
        Do Until strFile = ""
            If rng.Value = fnGetFileName(strFile) Then
                blnFlag = True
                Exit Do
            End If
            strFile = Dir
        Loop
        
        If blnFlag Then
            rng.Offset( 0 ,  1 ) = "Есть"
        Else
            rng.Offset( 0 ,  1 ) = "Нет"
        End If
        
    Next rng
End Sub

Public Function fnGetFileName( _
  strFileName As String) As String
  
    Dim intI As Integer
    
    intI = InStrRev(strFileName, ".")
    
    If intI >  0  Then
        fnGetFileName = Mid(strFileName,  1 , intI -  1 )
    End If
End Function

После выполнения:

Код: plaintext
1.
2.
3.
   A      B
1 123	Есть
2 1234	Есть
3 123456	Нет
...
Рейтинг: 0 / 0
макрос поиска строк файла Exell-я на другом диске
    #33488700
manchini
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо огромное, проверить к сожалению только завтра смогу, т.е. эта програмка будет искать строчки из Exell в именах файла другого диска?

и еще вопрос....если Exell файлик один, а на другом диске одноименные файлы по разным папкам раскинуты? и макросы работают на...ну не родном офисе?
Александр
...
Рейтинг: 0 / 0
макрос поиска строк файла Exell-я на другом диске
    #33488737
manchini
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и есть пожалуй еще один вопрос:(
как чего и куда подставлять в этом макросе?:(
:)
Александр
...
Рейтинг: 0 / 0
макрос поиска строк файла Exell-я на другом диске
    #33488926
manchini
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запускал макрос, пишет что ничего не нашел, может макрос не так подставил?


Александр
...
Рейтинг: 0 / 0
макрос поиска строк файла Exell-я на другом диске
    #33488967
Открываешь свой Excel файлик. Нажимаешь ALT+F11 или Сервис->Макрос->Редактор Visial Basic. В Project Explorer добавляешь модуль в свой проект и копируешь туда код.
...
Рейтинг: 0 / 0
макрос поиска строк файла Exell-я на другом диске
    #33489014
manchini
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все равно чего-то не идет, зашел в свой файлик
111
222
333
777

создал на диске С папку макрос, и в нем файлы
111doc
222.doc
333.doc
444.doc


запустил твой отредактированный макрос, который ранее приложил, а он в соседнем столбце все равно пишет нет у каждой строчки
Александр
...
Рейтинг: 0 / 0
макрос поиска строк файла Exell-я на другом диске
    #33490280
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тебе уже отвечал :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Public Function IsFile(cFile, Optional cPath) As Integer
' cFile - имя/маска файла
' cPath - путь полный или относительный (по умолчанию - тек.папка)
' возврат - количество найденных файлов
    tPath = ActiveWorkbook.Path + "\"
    If Not (IsNull(cPath) Or IsEmpty(cPath)) Then
        If Not (Left(cPath,  1 ) = "\" Or Mid(cPath,  2 ,  1 ) = ":") Then
            tPath = tPath + cPath
        Else
            tPath = cPath
        End If
    End If
    If Right(tPath,  1 ) <> "\" Then tPath = tPath + "\"
    With Application.FileSearch
        .LookIn = tPath
        .Filename = cFile
        IsFile = .Execute(SortBy:=msoSortByFileName, SortOrder:=msoSortOrderAscending)
    End With
End Function
Только этот макрос надо использовать в качестве функции листа
А уж если разные пути и разные файлы - так приведи пример xls-файлов
(2-3 штучки), где ты в них прописал имена, где пути - там и можно
подумать над большим макросом для полного анализа.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / макрос поиска строк файла Exell-я на другом диске
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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