|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Application.FileSearch |
|
|
Любой язык - Application.FileSearch
|
Новый участник Сообщения: 7 |
Профиль | Отправить PM | Цитировать День добрый. Возникла проблема с макросом при переходе с Office 2003 на 2007. Ошибка выходит на Application.FileSearch и как я понял, из поиска в интернете, Application.FileSearch в Office 2007 и выше отключен.
Я не программист и прошу помощи в решении проблемы. Ошибка выходит на этом месте: CheckExist: With Application.FileSearch .FileName = LastTxtName & ".txt" .LookIn = ActiveDocument.Path .Execute While .Execute > 0 Incrementor = Incrementor + 1 If Incrementor < 10 Then MatchLetters = 8 Else MatchLetters = 7 End If LastTxtName = Left (LastTxtName, MatchLetters - 1) & Incrementor GoTo CheckExist Wend End With FullLastTxtName = ActiveDocument.Path & "\" & LastTxtName & ".txt" End Sub |
|
Отправлено: 07:34, 31-08-2019 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать phx447, что должен делать приведённый Вами кусок кода?
|
Отправлено: 10:41, 31-08-2019 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
fascinating rhythm Сообщения: 6494
|
Профиль | Отправить PM | Цитировать Четвёртая ссылка вот здесь: https://www.google.ru/search?q=Application.FileSearch
Там есть решение: https://answers.microsoft.com/en-us/...5-0a83eb6bf984 |
------- Отправлено: 10:55, 31-08-2019 | #3 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Iska, вот что делает
` А такой LLLLLL[][i].txt - файл имеется? CheckExist: `Если такой же (или следующий, или схожий по первым буквам) *.txt файл уже есть в этой папке` With Application.FileSearch .FileName = LastTxtName & ".txt" .LookIn = ActiveDocument.Path .Execute While .Execute > 0 Incrementor = Incrementor + 1 `Поддерживается до 100 файлов` If Incrementor < 10 Then MatchLetters = 8 `(7 букв + 1 цифра) Else MatchLetters = 7 ` (6 букв + 2 цифра) End If LastTxtName = Left (LastTxtName, MatchLetters - 1) & Incrementor ` А такой LLLLLL[][i].txt - файл имеется? GoTo CheckExist Wend End With `Коннектим к файлу в транслите расширение *.txt FullLastTxtName = ActiveDocument.Path & "\" & LastTxtName & ".txt" End Sub DJ Mogarych, я в гугле искал, но я не знаю или точнее не понимаю, как воспользоваться ответами, которые там даны. |
Отправлено: 13:51, 31-08-2019 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать phx447, я не про комментирование кода, я не этого просил от Вас. Что должен делать код? Я не понимаю его предназначение. Я хочу, чтобы Вы описали задачу, для решения которой был создан данный код.
|
|
Отправлено: 15:24, 31-08-2019 | #5 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Iska, данный код макросом в office 2003 проверяет текст на наличие лишних пробелов, заменяет некоторые символы на нужные, выравнивает текст по ширине и сохраняет измененный *.doc файл в *.txt. Предварительно проверив папку на наличие схожих по названию файлов при сохранении.
|
Последний раз редактировалось phx447, 31-08-2019 в 15:46. Отправлено: 15:34, 31-08-2019 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата phx447:
|
|
Отправлено: 15:52, 31-08-2019 | #7 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
||
Отправлено: 18:45, 31-08-2019 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата phx447:
В общем, насколько я понимаю, Вам нужна функция, которая для каталога, где расположен активный документ, и указанного имени файла вернёт первое доступное имя файла, построенное по определённому принципу. Option Explicit Function GetFirstFreeName(strFileName As String) Dim objFSO As Object Dim strBaseFileName As String Dim strFullFileName As String Dim iCount As Integer Set objFSO = CreateObject("Scripting.FileSystemObject") strBaseFileName = objFSO.GetBaseName(strFileName) strFullFileName = objFSO.BuildPath(ActiveDocument.Path, strBaseFileName & ".txt") iCount = 1 Do While objFSO.FileExists(strFullFileName) iCount = iCount + 1 strFullFileName = objFSO.BuildPath(ActiveDocument.Path, strBaseFileName & " " & CStr(iCount) & ".txt") Loop GetFirstFreeName = strFullFileName End Function и т.д. Так? |
|
Отправлено: 19:48, 31-08-2019 | #9 |
Ветеран Сообщения: 2710
|
Профиль | Отправить PM | Цитировать Цитата Iska:
ИМХО, это отрывок макроса в WORD, пробую (для себя!) описать его назначение: Есть некие переменные, начальное значение определёно где-то выше: LastTxtName - имя файла без расширения Incrementor - счетчик для повторяющихся имен В результате работы этого куска макроса длина имени LastTxtName+Пробел+Incrementor должно быть не более 8 символов, LastTxtName урезается. Получившееся имя ActiveDocument.Path & "\" & LastTxtName & ".txt" не должно дублировать имеющееся имя файла. Вот вариант для замены Вашего куска:
Incrementor = 0 - не знаю, нужно или нет, если эта переменная выше приведенного куска где-то определялась, то эту строку надо удалить. Не очень понимаю, какое имя должно получиться при Incrementor = 0. Я сделал для отладочного имени ABCDEF.txt В принципе, начальное значение Incrementor может быть не 0, а любое допустимое >0, например, 1 (первое имя при этом будет ABCDEF 1.txt). Максимальная величина Incrementor в отладочном имени "A 999999.txt. Надеюсь, хватит. |
|
------- Последний раз редактировалось megaloman, 01-09-2019 в 15:41. Отправлено: 15:24, 01-09-2019 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Readreg MFC Application и CtHelper Application | Flethgin | Поиск драйверов, прошивок и руководств | 0 | 27-03-2014 19:50 | |
Прочие - AskStub Application | Grey_rnd | Программное обеспечение Windows | 4 | 19-12-2012 14:38 | |
VBS/WSH/JS - [решено] Чем заменить Application.FileSearch в Excel 2007? | mar1boro | Скриптовые языки администрирования Windows | 3 | 06-09-2012 17:24 | |
2003/XP/2000 - Excel VB: Filesearch и zip файлы | AlexM | Microsoft Office (Word, Excel, Outlook и т.д.) | 0 | 18-02-2010 07:34 | |
Application Error | ankerok | Хочу все знать | 1 | 10-10-2004 02:36 |
|