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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2010, 00:01   #11
Алекс14
Пользователь
 
Регистрация: 23.12.2009
Сообщений: 21
По умолчанию

Сорри ступил все работает.
Спасибо большое.
Алекс14 вне форума Ответить с цитированием
Старый 22.02.2010, 00:01   #12
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Я же дал макрос, зачем его записывать?
Как подключить готовый макрос и запустить его на выполнение?
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 22.02.2010, 00:05   #13
Алекс14
Пользователь
 
Регистрация: 23.12.2009
Сообщений: 21
По умолчанию

Можно спросить еще раз.
Вот это слов***о при разбиении текста можно как-то избежать?
Алекс14 вне форума Ответить с цитированием
Старый 22.02.2010, 00:07   #14
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Вставить перед словом или после?
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 22.02.2010, 00:15   #15
WordVest
Пользователь
 
Регистрация: 21.02.2010
Сообщений: 36
По умолчанию

Код хорошо выполняется только при разовом использовании документа, когда скопировали текст, применили макрос, а потом использовали данный текст 1 раз, в других случаях разделитель в три звездочки будет либо прибавляться, либо вставать между знаками, с прибавлением в три знака на каждое действие.........Алексу14, это не понравится, будет возмущаться......
WordVest вне форума Ответить с цитированием
Старый 22.02.2010, 00:19   #16
Алекс14
Пользователь
 
Регистрация: 23.12.2009
Сообщений: 21
По умолчанию

Желательно в конце слова.


А вот так можете сделать:
*** перенос строки***

т.е. сам текст будет таким:
***слово слово слово слово слово слово 1000 знаков***
***слово слово слово слово слово слово след. 1000 знаков***

А сами звездочки *** я заменю потом на "" (открыв. и закрыв. кавычки)
потому как ворд тупит с такими кавычками и ставит свои << >>
Алекс14 вне форума Ответить с цитированием
Старый 22.02.2010, 00:22   #17
Алекс14
Пользователь
 
Регистрация: 23.12.2009
Сообщений: 21
По умолчанию

Цитата:
Сообщение от WordVest Посмотреть сообщение
Код хорошо выполняется только при разовом использовании документа, когда скопировали текст, применили макрос, а потом использовали данный текст 1 раз, в других случаях разделитель в три звездочки будет либо прибавляться, либо вставать между знаками, с прибавлением в три знака на каждое действие.........Алексу14, это не понравится, будет возмущаться......
Не ну вы меня совсем за тупого не принимайте.
Естественно макрос будет выполняться один раз, ну это как-бы понятно где-то на уровне 5-6 класса
Алекс14 вне форума Ответить с цитированием
Старый 22.02.2010, 00:36   #18
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Пусть он сам решит, что ему понравится, а что нет.
Добавил удаление разделителя перед вставкой, запрос о месте вставки: перед словом или после слова, если разделитель попадёт в середину слова. Вставка производится вплотную к слову.
Код:
Sub InsertEvery1000()
  Dim i As Long 'счётчик символов
  Dim c As Long 'счётчик замен
  Dim delim As String 'Вставляемый разделитель
  Dim InsertAfter As Boolean
  Dim DlgResult As Integer
  
  delim = "***"
  
  With ActiveDocument.StoryRanges(wdMainTextStory).Find
    .Text = delim
    .Execute Replace:=wdReplaceAll
  End With
  
  DlgResult = MsgBox("Если разделитель попадёт в середину слова, вставить его после этого слова?" & vbCr & "Нажмите ""Нет"", чтобы вставить разделитель перед словом.", vbYesNoCancel + vbDefaultButton1)
  Select Case DlgResult
    Case vbYes
      InsertAfter = True
    Case vbNo
      InsertAfter = False
    Case vbCancel
      Exit Sub
  End Select
  
  Application.ScreenUpdating = False
  
  For i = 1000 To ActiveDocument.StoryRanges(wdMainTextStory).Characters.Count Step 1000
    ActiveDocument.Range(i + Len(delim) * c, i + Len(delim) * c).Select
    With Selection
      If InsertAfter Then
        .MoveEnd wdWord
        .Collapse wdCollapseEnd
        If .Characters.First.Previous.Text = " " Then .MoveLeft
      Else
        .MoveStart wdWord, -1
        .Collapse wdCollapseStart
      End If
      .TypeText delim
    End With
    c = c + 1
  Next
  
  Application.ScreenUpdating = True
  
  MsgBox ("Работа завершена. " & "Вставлено " & c & " разделителей")
End Sub
Добавлено позже
Сколько вы, однако, написали, пока я доделывал. Алекс14, не совсем понял что ещё требуется.
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 22.02.2010 в 00:39.
viter.alex вне форума Ответить с цитированием
Старый 22.02.2010, 00:57   #19
Алекс14
Пользователь
 
Регистрация: 23.12.2009
Сообщений: 21
По умолчанию

Спасибо большое, отлично работает.

viter.alex, вы не можете подсказать как при поиске и замене
сделать перевод строки.
Мне нужно эти ***
заменить на
"здесь 1000 знаков"
следующая строка "здесь след. 1000 знаков"
...
Фактически эти звездочки *** я заменяю на "" (как между двумя кавычками "" сделать пеход на след. строчку)

"текст 1000" с переводом на след строку "след. текст 1000" ... и т.д.
Алекс14 вне форума Ответить с цитированием
Старый 22.02.2010, 00:59   #20
Алекс14
Пользователь
 
Регистрация: 23.12.2009
Сообщений: 21
По умолчанию

Старался как можно подробнее.

Цитата:
Сообщение от Алекс14 Посмотреть сообщение
Спасибо большое, отлично работает.

viter.alex, вы не можете подсказать как при поиске и замене
сделать перевод строки.
Мне нужно эти ***
заменить на
"здесь 1000 знаков"
следующая строка "здесь след. 1000 знаков"
...
Фактически эти звездочки *** я заменяю на "" (как между двумя кавычками "" сделать пеход на след. строчку)

"текст 1000" с переводом на след строку "след. текст 1000" ... и т.д.
Алекс14 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Asm. Разбивка строки на две части levis07 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 30.03.2010 14:30
Форматирование текста (разбивка и выравнивание) regAlex3 Общие вопросы C/C++ 1 03.01.2010 16:29
Разбивка на страницы Busine2009 Microsoft Office Word 2 12.08.2009 09:33
Разбивка текста Vinslova Microsoft Office Excel 3 30.10.2008 12:49
Вывод части текста из файла CoDeR Общие вопросы Delphi 10 16.08.2007 14:30