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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2010, 16:35   #1
Jaroslav
Форумчанин
 
Регистрация: 08.06.2009
Сообщений: 179
По умолчанию Как заменить скобку и обычный дефис на скобку и нерозрывний дефис

Всем добрый день.
Вопрос в теме.
Делаю так в Excel:
Код:
With Word.application.Selection.Find
        .Text = "(-"
        .Replacement.Text = "(" & Chr(30)
        .Forward = True
        .Execute Replace:=wdReplaceAll
End With
Но у меня ничего не получается. Хотя если этот же макрос выполнять в Word, все работает.
Нужно сделать программу в Excel для замены скобки и обычного дефиса на скобку и нерозрывний дефис в Word.
Jaroslav вне форума Ответить с цитированием
Старый 20.08.2010, 16:45   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Замените в коде wdReplaceAll на 2 - и всё заработает.

(Excel не знает значения констант, встроенных в приложение Word)
EducatedFool вне форума Ответить с цитированием
Старый 20.08.2010, 16:55   #3
Jaroslav
Форумчанин
 
Регистрация: 08.06.2009
Сообщений: 179
По умолчанию

EducatedFool! Не работает. У меня в References стоит галочка Microsoft Word 11.0 Object Library
Jaroslav вне форума Ответить с цитированием
Старый 20.08.2010, 17:13   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Не работает
Что значит - не работает? Ошибку выдает (c номером 429)? Ещё что-то?
(или мы об этом сами дожны догадаться?)

Цитата:
У меня в References стоит галочка Microsoft Word 11.0 Object Library
При запуске из приложения Word ключевое слово Word ссылается на приложение.
При запуске из Excel слово Word НЕ ссылается на приложение.

Приведите код полностью.
Какой код отвечает за отрытие обрабатываемого файла?
Или вы надеетесь, что этот код будет работать для приложения Word, запущенного вручную?
EducatedFool вне форума Ответить с цитированием
Старый 20.08.2010, 17:48   #5
Jaroslav
Форумчанин
 
Регистрация: 08.06.2009
Сообщений: 179
По умолчанию

Этот код работает:
Код:
Dim WordApp As Object
Dim akt As String
akt = "D:\Акт125"
Set WordApp = CreateObject("Word.application")
With WordApp
    .Documents.Open Filename:=akt
    .Visible = True
    .Selection.Find.ClearFormatting
    .Selection.Find.Replacement.ClearFormatting
    With .Selection.Find
        .Text = "(-"
        .Replacement.Text = "(" & Chr(30)
        .Forward = True
        .Execute Replace:=2
    End With
End With
А если этот код вставить после кода:
Код:
With .ActiveDocument
                With .Range(.Paragraphs(18).Range.Start, .Paragraphs(20).Range.End).Find
                    .Text = Chr(45)
                    .Replacement.Text = Chr(30)
                    .Forward = True
                    .Execute Replace:=wdReplaceAll
                End With
            End With
почему-то, замена не работает.
Ничего не понимаю
Jaroslav вне форума Ответить с цитированием
Старый 20.08.2010, 18:00   #6
Jaroslav
Форумчанин
 
Регистрация: 08.06.2009
Сообщений: 179
По умолчанию

EducatedFool! Спасибо.
Конечно, я до конца не разобрался в чем причина того, что замена не работает. Может, потому что код программы слишком длинный (здесь я не приводил всего кода) или по каким либо еще причинам
Jaroslav вне форума Ответить с цитированием
Старый 20.08.2010, 19:25   #7
Jaroslav
Форумчанин
 
Регистрация: 08.06.2009
Сообщений: 179
По умолчанию

Ребята, разобрался. Я все делал правильно, только курсор в ворде стоял в конце документа, поэтому замена не происходила. Тему можно считать закрытой.
Jaroslav вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заменить скобку и обычный дефис на скобку и нерозрывний дефис Jaroslav Microsoft Office Word 4 20.08.2010 19:27
Как заменить обычний дефис на неразрывный дефис Jaroslav Microsoft Office Excel 2 28.05.2010 11:39
Простая задачка про дефис Кси Помощь студентам 0 06.04.2009 16:32
Простая задачка про дефис Кси Помощь студентам 4 06.03.2009 08:17