Форум программистов, компьютерный форум, киберфорум
MS Office Word
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 11.03.2016
Сообщений: 8
1

Секреты Word 2010

06.03.2019, 12:45. Показов 1010. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребят, помогите решить задачку.
Хочу в ворде по тексту заменить например букву а, на символ, например $, но нюанс в том, чтобы автозамена была произведена один раз в одном предложении. Т.е. по всему тексту должна замениться одна буква в рамках предложения один раз. А букв (а) как вы понимаете в предложении может быть много.
Как это сделать не понимаю
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.03.2019, 12:45
Ответы с готовыми решениями:

Нарушение форматирования документов word 2010 при открытии в word 2013
Здравия коллеги! Столкнулся с такой проблемой у человека W8+office2013 всё легальное, документы...

Как установить запуск Word 2010 вместо Word 2007?
Недавно установил Office 2010, но оставил 2007 (в новом варианте нет PowerPoint и Access). ...

При открытии документа word 2013 в word 2010 меняется структура текста
Здравствуйте. Для вуза сделал в ворд 2013 два реферата. Пошел распечатывать. Оказалось, что в том...

Эффекты анимации Word 2007, Word 2010.
Word 2007 Круглая кнопка - Параметры Word - Общие - Эффекты анимации. Word 2010 Файл -...

11
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
06.03.2019, 13:37 2
Заменять первую "а" в предложении или случайным образом?
0
0 / 0 / 0
Регистрация: 11.03.2016
Сообщений: 8
06.03.2019, 13:45  [ТС] 3
случайным образом
0
15146 / 6419 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
06.03.2019, 22:45 4
DiDimkin,
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub di()
Dim s As Range, d$(), i&, n&
  Randomize
  For Each s In ActiveDocument.Sentences
    d = Split(s.Text, "а")
    If UBound(d) Then
      n = 0
      For i = 0 To Int(UBound(d) * Rnd)
        n = n + Len(d(i)) + 1
      Next
      If n Then ActiveDocument.Range(s.Start + n - 1, s.Start + n).Text = "$"
    End If
  Next
End Sub
1
0 / 0 / 0
Регистрация: 11.03.2016
Сообщений: 8
07.03.2019, 09:40  [ТС] 5
Спасибо за помощь, но не мог бы ты для чайников объяснить куда вставлять этот макрос. Похоже что я делаю чтото не так, выскакивает сообщение ( приложил картинку)
Миниатюры
Секреты Word 2010  
0
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
07.03.2019, 11:11 6
DiDimkin, вставил ты его правильно, но ведь в сообщении говорится, что макросы отключены. Поэтому нужно зайти в Параметры→Центр безопасности и конфиденциальности→Настройки центра безопасности и конфиденциальности→Параметры макросов→Включить все макросы.
0
15146 / 6419 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
07.03.2019, 11:19 7
5-ю строку в коде из #4 лучше написать так, чтобы прописные буквы тоже заменялись
Visual Basic
1
    d = Split(s.Text, "а", , vbTextCompare)
Вариант без вложенного цикла
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub di1()
Dim s As Range, re As Object, n&
  Randomize
  Set re = CreateObject("vbscript.regexp")
  re.Pattern = "а"
  re.ignorecase = True
  re.Global = True
  For Each s In ActiveDocument.Sentences
    With re.Execute(s.Text)
      If .Count Then
        n = s.Start + .Item(Int(.Count * Rnd)).firstindex
        ActiveDocument.Range(n, n + 1).Text = "$"
      End If
    End With
  Next
End Sub
0
0 / 0 / 0
Регистрация: 11.03.2016
Сообщений: 8
07.03.2019, 11:29  [ТС] 8
Урааааааааааааа заработала )))))
0
0 / 0 / 0
Регистрация: 11.03.2016
Сообщений: 8
07.03.2019, 11:35  [ТС] 9
Спасибо тебе большое, я решил проблему с текстом.
Есть еще вопрос, а можно ли этот алгоритм применить к следующему. Поясню: я приложил вордовскую страничку, если увеличить масштаб до 500, то можно увидеть небольшие символы в виде "хвостиков" привязанные к некоторым буквам, например к букве О.
Можно ли уменшить количество этих "хвостиков" привязанные к букве? используя предыдущий алгоритм.
Вложения
Тип файла: docx 1.docx (14.5 Кб, 6 просмотров)
0
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
07.03.2019, 17:56 10
DiDimkin, никаких хвостиков у букв нет, туда вставлен символ U+061A. Его можно найти и удалить поиском и заменой:
Найти: ^u1562
Заменить на: пустая строка
0
0 / 0 / 0
Регистрация: 11.03.2016
Сообщений: 8
07.03.2019, 22:49  [ТС] 11
а можно вставить этот символ по всему тексту, но чтобы он встречался 1 раз в рамках предложения?
0
0 / 0 / 0
Регистрация: 11.03.2016
Сообщений: 8
10.03.2019, 19:15  [ТС] 12
DiDimkin, никаких хвостиков у букв нет, туда вставлен символ U+061A. Его можно найти и удалить поиском и заменой:
Найти: ^u1562
Заменить на: пустая стр

А если обратное действие нужно: пустую строчку заменить на этот символ, то как задать в автозамене по строчке "Заменить на"?
0
10.03.2019, 19:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.03.2019, 19:15
Помогаю со студенческими работами здесь

WORD 2010
Подскажите, пожалуйста, люди добрые. При печати меняются номера страниц в шаблоне а4.dot, которые...

Word 2010
Подскажите, почему сноски разделяются на две страницы и как это устранить...

ЭЦП Word 2010
Добрый день!!! Ребята нужна помощь, не могу разобраться.... У меня установлен Word 2010 так вот,...

Word 2010 Брошюра в А5
Здравствуйте, Брошюру, набрал на MS Word 2010 в формате А4. Теперь типография просит что, формат...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru