powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Замена символов
9 сообщений из 9, страница 1 из 1
Замена символов
    #34043102
SirFisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача следующая:
необходимо создать макрос, который запускается в Excel. Он должен открывать txt-файл в Word и выполнять замену символов. С первой частью проблем нет - файл открывается. Однако замена символов из под Excel не происходит, хотя при запуске из под Word всё работает. Код ниже:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dim WordApp As Object
Set WordApp = CreateObject("Word.Application")
    With WordApp
        .Visible = True
        .Documents.Open Filename:="C:\WorkSpace\ttt.txt"
        .Selection.WholeStory
            With .Selection.Find
                                .ClearFormatting
                                .Replacement.ClearFormatting
                                .Text = ","
                                .Replacement.Text = "^t"
                                .Forward = True
                                .Execute Replace:=wdReplaceAll
            End With
Помогите разобраться. Заранее спасибо.
...
Рейтинг: 0 / 0
Замена символов
    #34043139
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот у меня работает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Sub t()
    Dim objWordApp As Word.Application
    Set objWordApp = New Word.Application
    With objWordApp
        .Documents.Open "C:\Temp\1.txt"
        With .Selection
            .WholeStory
            .Find.ClearFormatting
            .Find.Replacement.ClearFormatting
            With .Find
                .Text = ","
                .Replacement.Text = "^t"
                .Forward = True
                .Execute Replace:=wdReplaceAll
            End With
        End With
        .ActiveDocument.Save
        .ActiveDocument.Close
        .Quit
    End With
    Set objWordApp = Nothing
End Sub
...
Рейтинг: 0 / 0
Замена символов
    #34043167
SirFisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
orunbek
Код: plaintext
1.
2.
    Dim objWordApp As Word.Application
    Set objWordApp = New Word.Application
VBA выдает сообщение "Compile error: User-defined type not defined"

Код: plaintext
1.
2.
3.
4.
    With objWordApp
...
                .Execute Replace:=wdReplaceAll
...
End Sub
VBA выдает сообщение "Compile error: Variable not defined"
...
Рейтинг: 0 / 0
Замена символов
    #34043210
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вы там подключите ссылку к библиотеке Word'а в Project>References
...
Рейтинг: 0 / 0
Замена символов
    #34045813
SirFisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
orunbek
Спасибо, всё работает, в т.ч. и в моем варианте.
P.S. Можно ли из VBA проверять подключение библиотеки и в случае необходимости включать/выключать ее?
...
Рейтинг: 0 / 0
Замена символов
    #34045821
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SirFisherМожно ли из VBA проверять подключение библиотеки и в случае необходимости включать/выключать ее?
Можно. Через коллекцию VBProject.Refrences, методы AddFromFile/AddFromGuid и Remove.
Это естественно потребует ручного первичного подключения библиотеки MS VBA Extensibility и разрешения для VBA править VBProjects, а это потенциальная дыра для вирусов.
...
Рейтинг: 0 / 0
Замена символов
    #34045829
SirFisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl
Всё понятно. Спасибо.
...
Рейтинг: 0 / 0
Замена символов
    #34045928
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SirFisher orunbek
Спасибо, всё работает, в т.ч. и в моем варианте.
P.S. Можно ли из VBA проверять подключение библиотеки и в случае необходимости включать/выключать ее?
а из-за чего не работал ваш вариант?
White Owl SirFisherМожно ли из VBA проверять подключение библиотеки и в случае необходимости включать/выключать ее?
Можно. Через коллекцию VBProject.Refrences, методы AddFromFile/AddFromGuid и Remove.
Это естественно потребует ручного первичного подключения библиотеки MS VBA Extensibility и разрешения для VBA править VBProjects, а это потенциальная дыра для вирусов.
а если использовать цифровые подписи?
...
Рейтинг: 0 / 0
Замена символов
    #34045945
SirFisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
orunbek
Не была подключена библиотека Word в References. Сейчас всё в порядке. Еще раз - спасибо.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Замена символов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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