Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Прошу помочь разобраться с кодом. Я полный НОЛЬ - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Прошу помочь разобраться с кодом. Я полный НОЛЬ
agafonic Дата: Вторник, 19.04.2011, 21:40 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Подскажите пожалуйста как работает поиск в этом коде, и как переделать поиск Application.FileSearch в дамном примере под поиск в office 2007. Пожалуйста, нужна помощь.

Set dictf = CreateObject("Scripting.Dictionary")
dictf.RemoveAll
Set fs1 = CreateObject("Scripting.FileSystemObject")
myname = Dir(pathWithDoc, vbDirectory + vbReadOnly)
mypath = getPathWork() + "\" ' Set the path.
Do While myname <> "" ' Start the loop.
If myname <> "." And myname <> ".." Then
If (GetAttr(pathWithDoc & myname) And vbDirectory) = vbDirectory Then
pos = InStr(myname, EMAI)
If pos > 0 Then
ss = Trim(Mid(myname, pos + 5))
ss = Replace(ss, "_", " ")
dictf.Add ss, myname
End If
End If
End If
myname = Dir ' Get next entry.
Loop
keys = dictf.keys
If dictf.Count > 0 Then
Call runWordApp
Sheets(1).Cells(11, 4).Value = CStr(dictf.Count)
For i = 0 To dictf.Count - 1
myname = dictf.Item(keys(i))
decn = keys(i)
Sheets(1).Cells(12, 4).Value = EMAI + "." + decn
Sheets(1).Cells(11, 4).Value = CStr(i + 1) + " / " + CStr(dictf.Count)
With Application.FileSearch
.NewSearch
.LookIn = pathWithDoc + myname + "\"
.SearchSubFolders = False
.Filename = "*.doc"
ss = Replace(decn, " ", "?")
pattern_files = EMAI + "?" + ss + "*.???"
If .Execute() > 0 Then
For j = 1 To .FoundFiles.Count
Set f = fs1.GetFile(.FoundFiles(j))
If Not (f.name Like pattern_files) Then
ss = f.name
ss = Lat_to_Rus(ss, 4)
If Left(ss, 4) = EMAI Then
nerr = nerr + 1
Print #2, "В папке " + myname + " файл " + f.name + " не соответствует названию папки"
If InStr(f.name, EMAI) = 0 Then
Print #2, f.name + " - возможна латиница среди букв децимального номера!"
End If
End If
End If
Next j
End If
filedoc = pathWithDoc + myname + "\" + myname + ".doc"
If fs1.fileexists(filedoc) = False Then
filedoc = Replace(filedoc, ".doc", ".DOC")
If fs1.fileexists(filedoc) = False Then
.NewSearch
.LookIn = pathWithDoc + myname + "\"
.SearchSubFolders = False
.Filename = MaskForMainDoc(pathWithDoc + myname + "\")
If .Execute() = 1 Then
filedoc = .FoundFiles(1)
Else
filedoc = ""
End If
End If
End If
End With


Тема закрыта администрацией. Причина: нарушение правил форума п.3



Сообщение отредактировал agafonic - Вторник, 19.04.2011, 21:42
 
Ответить
СообщениеПодскажите пожалуйста как работает поиск в этом коде, и как переделать поиск Application.FileSearch в дамном примере под поиск в office 2007. Пожалуйста, нужна помощь.

Set dictf = CreateObject("Scripting.Dictionary")
dictf.RemoveAll
Set fs1 = CreateObject("Scripting.FileSystemObject")
myname = Dir(pathWithDoc, vbDirectory + vbReadOnly)
mypath = getPathWork() + "\" ' Set the path.
Do While myname <> "" ' Start the loop.
If myname <> "." And myname <> ".." Then
If (GetAttr(pathWithDoc & myname) And vbDirectory) = vbDirectory Then
pos = InStr(myname, EMAI)
If pos > 0 Then
ss = Trim(Mid(myname, pos + 5))
ss = Replace(ss, "_", " ")
dictf.Add ss, myname
End If
End If
End If
myname = Dir ' Get next entry.
Loop
keys = dictf.keys
If dictf.Count > 0 Then
Call runWordApp
Sheets(1).Cells(11, 4).Value = CStr(dictf.Count)
For i = 0 To dictf.Count - 1
myname = dictf.Item(keys(i))
decn = keys(i)
Sheets(1).Cells(12, 4).Value = EMAI + "." + decn
Sheets(1).Cells(11, 4).Value = CStr(i + 1) + " / " + CStr(dictf.Count)
With Application.FileSearch
.NewSearch
.LookIn = pathWithDoc + myname + "\"
.SearchSubFolders = False
.Filename = "*.doc"
ss = Replace(decn, " ", "?")
pattern_files = EMAI + "?" + ss + "*.???"
If .Execute() > 0 Then
For j = 1 To .FoundFiles.Count
Set f = fs1.GetFile(.FoundFiles(j))
If Not (f.name Like pattern_files) Then
ss = f.name
ss = Lat_to_Rus(ss, 4)
If Left(ss, 4) = EMAI Then
nerr = nerr + 1
Print #2, "В папке " + myname + " файл " + f.name + " не соответствует названию папки"
If InStr(f.name, EMAI) = 0 Then
Print #2, f.name + " - возможна латиница среди букв децимального номера!"
End If
End If
End If
Next j
End If
filedoc = pathWithDoc + myname + "\" + myname + ".doc"
If fs1.fileexists(filedoc) = False Then
filedoc = Replace(filedoc, ".doc", ".DOC")
If fs1.fileexists(filedoc) = False Then
.NewSearch
.LookIn = pathWithDoc + myname + "\"
.SearchSubFolders = False
.Filename = MaskForMainDoc(pathWithDoc + myname + "\")
If .Execute() = 1 Then
filedoc = .FoundFiles(1)
Else
filedoc = ""
End If
End If
End If
End With


Тема закрыта администрацией. Причина: нарушение правил форума п.3


Автор - agafonic
Дата добавления - 19.04.2011 в 21:40
Serge_007 Дата: Вторник, 19.04.2011, 21:52 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
А вот здесь не то?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеА вот здесь не то?

Автор - Serge_007
Дата добавления - 19.04.2011 в 21:52
agafonic Дата: Вторник, 19.04.2011, 22:09 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

У меня в одной папке, на которую я сразу ссылаюсь, лежат еще много папок (например "е.1212-1", "е.1213-1", "е.1214-1"). внутри каждой из этих папок лежат 1-2 файла ".doc ". Например в Папке "е.1212-1" лежат файлы "е.1212-1.doc" и "е.1212-1-1.doc". Как мне узнать совпадают они или нет?Нужно что бы совпадал номер папки и номер доковского документа ("1212" и "1212").
В самом доковском файле должен быть написан номер (пример 1212), как узнать совпадает ли он с названием папки?
В текстовый документ должен выдавать сообщение после проверки, если есть несовпадения - " В папке "Название папки" файл "название файла" не соответствует названию папкм" и "В папке "Название папки" в файле "название файла" некорректный номер"


Сообщение отредактировал agafonic - Вторник, 19.04.2011, 22:33
 
Ответить
СообщениеУ меня в одной папке, на которую я сразу ссылаюсь, лежат еще много папок (например "е.1212-1", "е.1213-1", "е.1214-1"). внутри каждой из этих папок лежат 1-2 файла ".doc ". Например в Папке "е.1212-1" лежат файлы "е.1212-1.doc" и "е.1212-1-1.doc". Как мне узнать совпадают они или нет?Нужно что бы совпадал номер папки и номер доковского документа ("1212" и "1212").
В самом доковском файле должен быть написан номер (пример 1212), как узнать совпадает ли он с названием папки?
В текстовый документ должен выдавать сообщение после проверки, если есть несовпадения - " В папке "Название папки" файл "название файла" не соответствует названию папкм" и "В папке "Название папки" в файле "название файла" некорректный номер"

Автор - agafonic
Дата добавления - 19.04.2011 в 22:09
Serge_007 Дата: Вторник, 19.04.2011, 22:15 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (agafonic)
...номер доковского документа...

А причём здесь Excel?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (agafonic)
...номер доковского документа...

А причём здесь Excel?

Автор - Serge_007
Дата добавления - 19.04.2011 в 22:15
agafonic Дата: Вторник, 19.04.2011, 22:19 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

эта проверка должна быть через макрос
 
Ответить
Сообщениеэта проверка должна быть через макрос

Автор - agafonic
Дата добавления - 19.04.2011 в 22:19
Serge_007 Дата: Вторник, 19.04.2011, 22:23 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (agafonic)
эта проверка должна быть через макрос

А причём здесь Excel?!


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (agafonic)
эта проверка должна быть через макрос

А причём здесь Excel?!

Автор - Serge_007
Дата добавления - 19.04.2011 в 22:23
agafonic Дата: Вторник, 19.04.2011, 22:25 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

а макрос в Excel
 
Ответить
Сообщениеа макрос в Excel

Автор - agafonic
Дата добавления - 19.04.2011 в 22:25
Serge_007 Дата: Вторник, 19.04.2011, 22:50 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (agafonic)
а макрос в Excel

Т.е. для работы с вордом Вы используете экс?
Используйте ворд.


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (agafonic)
а макрос в Excel

Т.е. для работы с вордом Вы используете экс?
Используйте ворд.

Автор - Serge_007
Дата добавления - 19.04.2011 в 22:50
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!