Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2009, 08:29   #11
ru3000
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 163
По умолчанию

Мне так и не удалось победить запуск сотен процессов WINWORD.exe при сканировании макросом папки. Приходится сканировать частями и пока комп окончательно не повисает сохранять полученное и перезагружаться уже с кнопки. Может быть есть возможность усовершенствования кода? А то геморроя с документами у меня впереди еще много.
ru3000 вне форума Ответить с цитированием
Старый 02.11.2009, 10:31   #12
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Попробуйте использовать такой вариант функции GetInfoWD

Код:
Function GetInfoWD(ByVal filename As String, ByRef res1, ByRef res2)
    On Error Resume Next
    Set wa = CreateObject("Word.Application")
    Set doc = wa.Documents.Open(filename, , True)
    txt1 = "одной стороны, и ": txt2 = "(далее по тексту": txt = doc.Range.Text
    res1 = Mid(txt, InStr(1, txt, txt1) + Len(txt1))
    res1 = Trim(Left(res1, InStr(1, res1, txt2) - 1))
    res2 = doc.Tables(2).Rows(doc.Tables(2).Rows.Count - 1).Cells(doc.Tables(2).Columns.Count).Range.Text
    res2 = Val(Replace(Replace(res2, Chr(13) & Chr(7), ""), ",", "."))
    doc.Close False
    wa.Quit False
    Set doc = Nothing: Set wa = Nothing
End Function
Должно помочь...
EducatedFool вне форума Ответить с цитированием
Старый 02.11.2009, 10:42   #13
ru3000
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 163
По умолчанию

Спасибо, огромное. Действительно помогло.
ru3000 вне форума Ответить с цитированием
Старый 03.11.2009, 23:18   #14
ru3000
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 163
По умолчанию

Столкнулся с проблемой. В некоторых счетах вместо Всего к оплате написано Всего по счету. Как исправить в текущем коде, чтобы res2 принимало значение либо Всего к оплате, либо Всего по счету. Спасибо.
Код:
        Case filename Like "Счет*":
            v = "Счет"
            n = Trim(Mid(Split(filename, " ")(1), 2))
            res1 = "Заказчик:": res2 = "Всего к оплате"
            GetInfoXL filenameL, res1, res2, , 2, , 2
ru3000 вне форума Ответить с цитированием
Старый 04.11.2009, 09:07   #15
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
чтобы res2 принимало значение либо Всего к оплате, либо Всего по счету
Код:
        Case filename Like "Счет *":
            v = "Счёт"
            n = Trim(Mid(Split(filename, " ")(1), 2))
            res1 = "Заказчик:": res2 = "Всего к оплате"
            GetInfoXL filenameL, res1, res2, , 2, , 2
            If res2 = "Всего к оплате" Then
                res1 = "Заказчик:": res2 = "Всего по счету"
                GetInfoXL filenameL, res1, res2, , 2, , 2
            End If
Цитата:
Спасибо
Это была последняя доработка "за спасибо". Все дальнейшие доработки с моей стороны - за WebMoney.
Ну или самостоятельно разбирайтесь в коде - там нет ничего сложного.

Последний раз редактировалось EducatedFool; 04.11.2009 в 09:10.
EducatedFool вне форума Ответить с цитированием
Старый 04.11.2009, 15:44   #16
ru3000
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 163
По умолчанию

Премного благодарен.
ru3000 вне форума Ответить с цитированием
Старый 17.11.2009, 20:14   #17
golex
 
Регистрация: 08.11.2009
Сообщений: 3
По умолчанию

Доброго времени суток, помогите "плиз" довести до ума, в VBA соображаю методом научного тыка. Суть:
Цитата:
Select Case True
Case filename Like "с*":
res1 = "СЧЕТ": res2 = "Плательщик": res3 = "*S-36*"
GetInfoXL filenameL, res1, res2, res3, , , 1, , , 3
Case Else
End Select
cell.Next.Resize(, 3).Value = Array(res1, res2, res3)
нужно из "res2" извлекать заключенное в " " , пример ООО филиал "Рога и копыта 2", по res3, может повторяться, нужно отобразить их сумму.
Заранее спс
golex вне форума Ответить с цитированием
Старый 18.11.2009, 12:32   #18
diment
Пользователь
 
Регистрация: 16.06.2009
Сообщений: 20
По умолчанию

являюсь сторонним наблюдателем всей этой переписки и скажу что программа от EducatedFool поразила меня до глубины души, принцип работы и некоторые приемы будут чрезвычайно полезны и в моей работе.

EducatedFool SUPER!!!
diment вне форума Ответить с цитированием
Старый 18.11.2009, 13:53   #19
golex
 
Регистрация: 08.11.2009
Сообщений: 3
По умолчанию

согласен с Вами "diment", подход чрезвычайно рационализаторский, догадывался что такое возможно, наконец увидел во плоти создание от EducatedFool, человек реально в теме
golex вне форума Ответить с цитированием
Старый 18.11.2009, 16:45   #20
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
нужно из "res2" извлекать заключенное в " " , пример ООО филиал "Рога и копыта 2", по res3, может повторяться, нужно отобразить их сумму
Не совсем понятно задание.

Нужна функция обработки строки, которая из текста ООО филиал "Рога и копыта 2" вырежет всё лишнее, оставив только Рога и копыта 2?

Какую сумму надо отобразить?
Сумму букв в слове, или сумму рогов и копыт?
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходимо в excel составить список баз 1С 8.1 и 1С 7.7 ru3000 Microsoft Office Excel 1 14.10.2009 22:21
Индивидуальное задание(список студентов, библиотека) AlverX Microsoft Office Access 0 24.05.2009 18:29
Приложение которое выводит список файлов текущего каталога и при клике на любом из файлов откроет его. LimanSSk Общие вопросы Delphi 2 18.05.2009 16:03
В PASCAL .Составить список слов начинающихся на конкретную букву Waia Помощь студентам 1 07.11.2008 18:20
Составить линейный список, Среда Delphi Kreaman Помощь студентам 1 11.06.2008 19:54