Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
Как скопировать определенный текст через VBA в Word
 
Всем большое спасибо!!! Наконец нашел действительно работающий макрос от БМВ, за что ему огромная благодарность!
Немного методом проб и ошибок и небольшой корректировки макроса он наконец сдружился с Вордом! Ура!
Код
Sub Выделить_между()
    Dim MyRange As Range, rStart&, rEnd&
    Set MyRange = ActiveDocument.Content
    With MyRange
        With .Find
            .ClearFormatting
            .Text = "<Заключение>*<Подпись>"
            .Forward = True
            .Wrap = wdFindStop
            'Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = True
            .MatchSoundsLike = False
            .MatchAllWordForms = False
            .Execute
            If .Found And MyRange.Words.Count > 2 Then
                rStart = MyRange.Sentences(2).Start
                With MyRange.Sentences(MyRange.Sentences.Count - 1)
                    rEnd = .Words(.Words.Count - .Paragraphs.Count).End
                End With
            ActiveDocument.Range(rStart, rEnd).Select
            Selection.Copy
            'ActiveDocument.Range(rStart, rEnd).Copy
            End If
        End With
    End With
     
End Sub
Как скопировать определенный текст через VBA в Word
 
Цитата
написал:
Правильно сформулированная задача = полрешения:В активном Word-документе требуется найти ключевые слова 1 и 2.И выделить+скопировать диапазон после параграфа со словом1 и до параграфа со словом 2, исключая в конце пустые параграфы и параграфы, содержащие только пробелы.Вот решение:
Приветствую! Однако засада по Вашему макросу.
Ошибка 4608
Значение лежит вне допустимого диапазона
Как скопировать определенный текст через VBA в Word
 
Есть программа которая формирует на основании введенных данных итоговый документ и открывает его для печати. Потом сохраняет его в своей базе. Шрифт всего документа Arial и заключение и подпись подчеркнуты всегда. Самый первый макрос прекрасно по волшебству с ним отрабатывает причём при любом шрифте, размере, прописных или заглавных, подчеркнутых и нет, но минус выделяет пустые строки, а вот последующие Вами предоставленные ругаются. Что в них общего и какая разница...  
Изменено: evgenij_sar - 26.04.2025 12:26:28
Как скопировать определенный текст через VBA в Word
 
Это значит что определяется как с другим регистром?  
Как скопировать определенный текст через VBA в Word
 
А влияют ли слова располагающиеся на одной строке до слова Заключение и после слова Подпись? Эти слова располагаются через пробел.  
Изменено: evgenij_sar - 25.04.2025 23:07:54
Как скопировать определенный текст через VBA в Word
 
Спасибо... буду копаться дальше до истины)
Итог тот же. При удалении текста и вставки своего в документ макросы не работают, конечно кроме моего первого, который выделяет и пустые строки и текст.  Не понятно что мешает работать макросу с одними и теми же замыкающими текст словами. Шрифт тот же, подчёркивания. Разница только в методе ввода. От руки или вставка.  
Изменено: evgenij_sar - 25.04.2025 22:54:48
Как скопировать определенный текст через VBA в Word
 
Вот файл с измененным содержимым
Как скопировать определенный текст через VBA в Word
 
Да конечно.
Самое интересное то когда я вставляют свой текст за место вашего в файле Example, то ничего не получается.
Например убираю
ЗАКЛЮЧЕНИЕ
ТЕКСТ
ТЕКСТ
ТЕКСТ

Подпись
И потом вставляю свои данные и уже не работает.
Само собой слова заключение и подпись также вставляются с другого документа
Да еще заметил что с 3 макросом в файле не выделяется последняя точка.
Изменено: evgenij_sar - 25.04.2025 13:28:05
Как скопировать определенный текст через VBA в Word
 
Спасибо большое! Но у меня все равно не выделяется почему то... Буду кумекать...
Как скопировать определенный текст через VBA в Word
 
Проверил, ничего не выделяет. Не понимаю почему. Ни первый ни второй макрос не работает. Мистика...
Как скопировать определенный текст через VBA в Word
 
Вот как получается, файл прикрепил. Выделение и копирование автоматом по нажатию кнопки, но как видим пустые строки тоже копируются с текстом.  
Изменено: evgenij_sar - 24.04.2025 16:06:26
Как скопировать определенный текст через VBA в Word
 
Там переводы строк.
Сверху одна и снизу строки 4.
Больше там ничего нет. Просто нужно чтобы выделялся только
ТЕКСТ
ТЕКСТ
ТЕКСТ
без пустых строк
Сам текст внутри он может быть разным абсолютно каждое заключение.
Изменено: evgenij_sar - 24.04.2025 15:30:40
Как скопировать определенный текст через VBA в Word
 
С этим понятно) В прочем так и делаю, однако в с буфера приходится вставлять данные с документа в другую программу, а там вставляется с пробелами. Приходится удалять вручную. Просто если не будет слов заключение и подпись, все равно перед и после другие слова стоят. Просто то что хочу скопировать это всего лишь мелкий фрагмент который стоит где то по середине документа на 10 странице из 20.
Изменено: evgenij_sar - 24.04.2025 15:10:54
Как скопировать определенный текст через VBA в Word
 
Заключение и подпись выставляет программа сама и всё это должно выводится на печать, поэтому без них никак.
Как скопировать определенный текст через VBA в Word
 
А вот так выделяется с первым макросом. И так копируется к сожалению. Вот вся суть проблемы
Как скопировать определенный текст через VBA в Word
 
К сожалению ни один из примеров не работает.
Попробую немного по другому обьяснить.
Есть документ в ворде, типа акта с таким таким содержимым один в один с жирным шрифтом и подчеркиванием:
ЗАКЛЮЧЕНИЕ
ТЕКСТ
ТЕКСТ
ТЕКСТ



Подпись

Нужно чтобы копировался только
ТЕКСТ
ТЕКСТ
ТЕКСТ
без одного пробела сверху и пустых строк снизу.
Как скопировать определенный текст через VBA в Word
 
Спасибо большое, буду пробовать. По маске не получится, потому что будет постоянно меняться содержимое текста- Абзац. В моем случае получается выделение самого текста- Абзац и одного пробела сверху и несколько пустых строк снизу. Поэтому дальнейшая вставка текста-Абзац выходит некорректно. Приходится вручную убирать эти пробелы.  
Как скопировать определенный текст через VBA в Word
 
Нужно просто чтобы выделился текст чтобы потом копировать ctrl+c. Проблема решена. Однако текст выделяет с пробелами между Словом1 и словом2. Как теперь сделать чтобы выделить лишь текст без пробелов.
В данный момент получается так:  слово1__пробел до__АБЗАЦ__пробел после__слово2 ====> пробел__АБЗАЦ__пробел, а нужно чтобы было просто АБЗАЦ

Код
Sub Выделить_между()
    Dim MyRange As Range, rStart&, rEnd&
    Set MyRange = ActiveDocument.Content
    With MyRange
        With .Find
            .ClearFormatting
            .Text = "Слово1"
            .Forward = True
            .Wrap = wdFindStop
            .Format = False
            .MatchCase = False
            .MatchWholeWord = True
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
            .Execute
            If .Found Then rStart = MyRange.End: rEnd = rStart
        End With
    End With
    Set MyRange = ActiveDocument.Content
    With MyRange
        With .Find
            .Text = "Слово2"
            .Execute
            If .Found Then rEnd = MyRange.Start
        End With
    End With
    If rEnd > rStart Then
        ActiveDocument.Range(rStart, rEnd).Select
        Selection.Copy
    End If
End Sub
Изменено: evgenij_sar - 23.04.2025 15:46:16
[ Закрыто] Копирование части текста между двумя словами
 
Здравствуйте друзья. Необходимо макросом скопировать в буфер часть текста в документе Word которая распологается между "слово 1" и "слово 2".
Слово 1 и слово 2 будут встречаться в одном документе один раз, причем они будут с подчеркиванием.
Подскажите пожалуйста как это осуществить?
Как скопировать определенный текст через VBA в Word
 
Друзья прошу помощи. Подскажите как выделить через макрос текст Wordа который допустим распологается между "Слово1" и "Слово2". Возможно ли это осуществить?
Изменено: evgenij_sar - 23.04.2025 09:34:31
Формат времени :00
 
Конечно Ваш пример работает. Только как сделать чтобы ексель переправлял в той же ячейке?
Формат времени :00
 
Спасибо огромное! А каким образом применить это к ячейкам?
Формат времени :00
 
Друзья, прошу помощи, помогите решить задачу. Есть ли какой макрос или формат ячеек для того чтобы убрать :00 минуты в ячейках?
Формат ячеек стоит [ч]:м. Ячейки учавствуют в формулах расчета.  Хотелось бы сделать так чтобы вписывались ровные часы, например 15:00, автоматически просто цифрой 15. Если есть минуты, то вписывались как обычно, например 15:23.
Изменено: evgenij_sar - 26.03.2019 21:12:06
Перевод в надстрочный шрифт
 
Добрый вечер друзья, подскажите пожалуйста кто нибудь функцию которая меняла бы автоматом две последние цифры числа в ячейке в надстрочный формат
Суммирование по подчеркнутому шрифту.
 
Для успокоения души, вернул настройки на место и в лист добавил и вуаля! Всё великолепно.
:)
Код
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Application.CalculateBeforeSave = True
End Sub

Private Sub Workbook_BeforePrint(Cancel As Boolean)
 For Each wk In Worksheets
 wk.Calculate
 Next
End Sub
Изменено: evgenij_sar - 02.02.2019 20:54:17
Суммирование по подчеркнутому шрифту.
 
Всем спасибо! Оказывается все куда проще! Шаманство в настройках, отключил автомат и поставил галку на вручную и перед сохранением!
Суммирование по подчеркнутому шрифту.
 
Кстати говоря да. Так как обычно будут люди копировать с ячеки в ячейку перерасчет будет занимать время. Лучше отменить автоматический расчет и сделать или в ручную или все таки перед закрытием. Подскажите как это выполнить? Придется лезть опять в листы и ставить workbook? Как вставить макросы в лист?
Суммирование по подчеркнутому шрифту.
 
Да макрос от Sanja вполне помог! За что ему большое спасибо! Этого куда предостаточно. Сначала составил, подчеркнул по табелю ночные и нажал на F9.
Самое то!
Суммирование по подчеркнутому шрифту.
 
Цитата
Sanja написал:
Замените свою функцию на такую
Отлично!!! Спасибо огромное! Все получилось! Теперь пересчет идет через клавишу F9. В принципе этого достаточно!
Суммирование по подчеркнутому шрифту.
 
Может тогда подскажите как правильно вставить формулу в лист
Код
Private Sub Worksheet_Change(ByVal Target As Range)
.....?......
End Function
Страницы: 1 2 След.
Наверх