![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 19.02.2009
Сообщений: 46
|
![]()
Привет всем!
Решаю задачу но исчерпав свое знанию в VBA нужного результата не добился, надеюсь на ваши советы: В общем написал вот такой код Private Sub cmd_Click() Dim i, j, k1, k2 As Integer Dim S, D, G As String Dim Glasnie, Soglasnie As Variant 'Массив гласных Glasnie = Array(ChrW(4304), ChrW(4308), ChrW(4312), ChrW(4317), ChrW(4323)) 'Массив согласных Soglasnie = Array(ChrW(4305), ChrW(4306), ChrW(4307), ChrW(4309), ChrW(4310), ChrW(4311), ChrW(4313), ChrW(4314), ChrW(4315), ChrW(4316), ChrW(4318), ChrW(4319), ChrW(4320), ChrW(4321), ChrW(4322), ChrW(4324), ChrW(4325), ChrW(4326), ChrW(4327), ChrW(4328), ChrW(4329), ChrW(4330), ChrW(4331), ChrW(4332), ChrW(4333), ChrW(4334), ChrW(4335), ChrW(4336)) i = 3 j = 1 Set myRange = ActiveDocument.Range Do While S <> " " ' text S L S = Mid(myRange, i, 1) ' Перед двумя символами D = Mid(myRange, j, 1) Тут переменная "S" Бдет в переди двумя символами чем "D" и с помощью этой переменной буду определять координаты куда вставить знак перенося. For k2 = 0 To 27 'Цыкл выявления согласных If S = Soglasnie(k2) Then MsgBox ("b") G = G + "b" Exit For End If Next For k1 = 0 To 4 'Цыкл выявления гласных If S = Glasnie(k1) Then G = G + "a" MsgBox ("a") Box1.Text = S Exit For End If Next Вот в здесь уже должна вставляться знак переноса если... ba-ba, bab-ba ba-aba Ну тому подобное И последный код который я не смог сформулировать... If G = "baba" Then Mid(myRange, j, 1) = Mid(myRange, j, 1) + "-" G = "" End If i = i + 1 j = j + 1 Box3.Text = G Loop End Sub Может я все делаю очень сложно? P.S. Заранее спасибо |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 12.11.2009
Сообщений: 258
|
![]()
а зачем реализовывать такую вещь на вба ? расстановка перенос стандартная ведь функция в word например
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 19.02.2009
Сообщений: 46
|
![]() |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 12.11.2009
Сообщений: 258
|
![]()
добавление локали новой с переносами, орфографией, грамматикой - должно быть стандартной задачей. я бы в эту сторону и копал.
|
![]() |
![]() |
![]() |
#5 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
![]() Код:
Иначе знаки переноса (дефисы) будут во всех словах — а не где надо!
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 19.02.2009
Сообщений: 46
|
![]() |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 12.11.2009
Сообщений: 258
|
![]()
а если & вместо плюса пользовать ?
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 17.07.2009
Сообщений: 519
|
![]()
chugo,bdfy, + и & в данном контексте эквивалентны.
Вы пытаетесь строке из одного символа Mid(myRange, j, 1) присвоить 2-х символьное значение Mid(myRange, j, 1) + "-" Было бы очень странно если бы это работало... |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 19.02.2009
Сообщений: 46
|
![]()
В обшем уже вначале я делал ошыбку
Если кому-то интересно решил проблему так Код:
Спасибо всем кто читал ![]() Тема закрыта |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
VBA Word,VBA Excel решить 2 задачи | fafolo4ka | Фриланс | 6 | 05.03.2012 01:15 |
Переносы | Syltan | Microsoft Office Word | 1 | 03.12.2009 21:06 |
vba | Joslen_bomon | Microsoft Office Excel | 8 | 04.10.2009 11:20 |
VBA!! | NitriNKa | Помощь студентам | 1 | 02.04.2009 23:07 |