|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
Доброго Вам времени суток Уважаемые господа при наличии времени прошу Вас помочь есть файл Word с такой структурой 1) Вопрос теста Chr(11)) A) Ответ 1 Chr(11) B) Ответ 2 Chr(11) C) Ответ 3 Chr(11) D) Ответ 4 Chr(11) E) Ответ 5 Chr(11) вот таким кодом я разбиваю всю конструкцию и получаю в переменные отдельные строки Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
как видно из кода ограничителем Split является Chr(11) подскажите пожалуйста как изменить этот код так чтобы в первую переменную садились данные находящиеся между "1)" и Chr(11) во вторую переменную данные находящиеся между "A)" и "B)" в третью ... между "B)" и "C)" в четвертую ... между "C)" и "D)" в пятую ... между "D)" и "E)" в шестую ... между "E)" и Chr(11) С Уважением Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2011, 13:08 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
Namik, >садились данные находящиеся между "1)" и Chr(11) кто ж его посадит, он же файл, прикладывайте файл ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2011, 13:21 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
Namik, Убить предварительно эти самые "1)", "А)" и т.п. можно сделать это вордовым посиком/заменой ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2011, 13:32 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
Благодарю Вас за ответы прикладываю файл ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2011, 16:27 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
Shocker.Pro дело в том что при такой записи теста 1) Вопрос теста Chr(11)) A) Ответ 1 Chr(11) B) Ответ 2 Chr(11) C) Ответ 3 Chr(11) D) Ответ 4 Chr(11) E) Ответ 5 Chr(11) вариант который есть у меня устраивает но дело в том что учитель может написать тест так, что разобьет ответ одного варианта на две строки вот например так 1) Вопрос теста Chr(11)) A) Ответ 1 Chr(11) продолжение ответа 1 Chr(11) B) Ответ 2 Chr(11) C) Ответ 3 Chr(11) D) Ответ 4 Chr(11) E) Ответ 5 Chr(11) а при таком раскладе не весь текст сядет в переменную поэтому и надо чтобы программа брала текст между теми позициями которые я указал С Уважением и Благодарностью Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2011, 16:37 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
прилагаю также саму форму VBA ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2011, 17:00 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
Namik, вообще то не сложно ответить и то что Вы спрашиваете, но... Открыл Ваш файл, запустил Вашу форму, что потом жмём КомандБуттон 1, 2 или 3??? Построение странное ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2011, 18:27 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
Button 3 Ципихович Эндрю построение - ну это же черновой вариант - т.е. весь путь работы я в начале получал данные в msgbox потом d Label может я как то не правильно выражаю свою мысль мне то и нужно чтобы из строки которую получает переменная S ( вытащить нужные данные между указанным диапазоном) С Уважением Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2011, 19:22 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
Namik, Debug.Print s помогает: Великая Отечественная Война началась в:A) 1945 г.B) 1914 г.C) 1928 г.D) 1999 г.E) 2000 г.PO) 1945 г. Что надо вытащить?? 1945 г. так?? то есть три первых знака откинуть??? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2011, 19:55 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
NamikShocker.Pro но дело в том что учитель может написать тест так, что разобьет ответ одного варианта на две строки вот например так Берешь и заменяешь последовательность: <chr(11)><конец абзаца><любая буква><скобка><пробел> на какой-нить символ, скажем @ а потом делаешь split по нему. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2011, 20:01 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
Благодарю Вас за ответы Ципихович Эндрю вот строка 1) Великая Отечественная Война началась в:A) 1945 г.B) 1914 г.C) 1928 г.D) 1999 г.E) 2000 г.PO) 1945 г. как в переменную1 вытащить все что между 1) и : т.е. (Великая Отечественная Война началась в) в переменную2 вытащить все что между A) и B) т.е. 1945 г. и т.д. я же не знаю сколько символов будет не нужно в следующем тесте но я знаю четко структуру теста - которую я указал выше Shocker.Pro Вы имеет ввиду вставлять вместо Chr(11) например "A)" но и это не дает желаемый результата может я не правильно Вас понял подскажите кодом - если Вам не трудно С Уважением и Благодарностью Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2011, 22:30 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
Namik, Неправильно понял. После того, как ты сделаешь замену, про которую я сказал, получишь примерно следующий результат: @Ответ 1 Chr(11) продолжение ответа 1@Ответ 2@Ответ 3@Ответ 4@Ответ 5 который, как видно, уже нетрудно разбить Split-ом по разделителю @ ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2011, 22:39 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
Shocker.Pro я изменил свой код посмотрите пожалуйста Вы так имели ввиду ? Dim s As String Dim a() As String kolvospiska = ActiveDocument.ListParagraphs.Count i = i + 1 If i > 23 Then MsgBox "Конец" Else s = ActiveDocument.ListParagraphs(i).Range g = Replace(s, Chr(11), "@") a = Split(g, "@") l1.Caption = a(0) l11.Caption = a(1) l2.Caption = a(2) l3.Caption = a(3) l4.Caption = a(4) l5.Caption = a(5) Rem MsgBox a(6) End If ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2011, 22:53 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
Нет я не это имел ввиду, я кажется достаточно ясно выразил мысль. Если тебе не нужны буквы, скобки, пробелы - так убери их ДО Split-а. Я предлагал это сделать непосредственно в документе, но не знаю, приемлемо ли это в твоем случае. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2011, 23:04 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
наверное я не могу выразить свою мысль спасибо но это не то С Уважением Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2011, 23:07 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
Ты-то смог, и я понимаю, что тебе надо Но ты не хочешь вникнуть в мое предложение. Но я не знаю, как тебе его разжевать. Нажми в документе Ctrl+H В поле "Найти" напиши " ^l^$) " (кавычки не надо, в конце пробел, обрати внимание) В поле "Заменить" напиши "@" Нажми "Заменить все" Результат обрабатывай Split-ом с разделителем @ ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2011, 23:45 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
когда это Нажми в документе Ctrl+H В поле "Найти" напиши "^l^$) " (кавычки не надо, в конце пробел, обрати внимание) В поле "Заменить" напиши "@" Нажми "Заменить все" делаете, макрорекодер на записи ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2011, 04:30 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
Доброго Вам времени суток Уважаемые Shocker.Pro Ципихович Эндрю я Вам очень благодарен за помощь я Вас прекрасно понял но прошу Вас просмотреть то что получается прошу Вас сравнить вот тест 1) Великая Отечественная Война началась в: A) 1945 г. B) 1914 г. C) 1928 г. D) 1999 г. E) 2000 г. вот его деление по Вашей методике 1) Великая Отечественная Война началась в:@) 1945 г.@) 1914 г.@) 1928 г.@) 1999 г.@) 2000 г. все нормально - то что надо - каждая строка садится на свое место теперь прошу Вас посмотреть второй вариант написания теста 1) Великая Отечественная Война началась в: продолжение вопроса теста A) 1945 г. B) 1914 г. C) 1928 г. D) 1999 г. E) 2000 г. вот его деление по Вашей методике 1) Великая Отечественная Война началась в:@родолжение вопроса теста@) 1945 г.@) 1914 г.@) 1928 г.@) 1999 г.@) 2000 г. прошу Вас обратить внимание на то что при перовом разбиении текста у нас получается 6 строк при втором 7 строк и естественно строки смешиваются и не садятся на свои места а последняя строка будет пропущена С Уважением и Благодарностью Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2011, 10:05 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
Namikя Вас прекрасно понял Да нифига ты не понял, ну читай же внимательно оригинал1) Великая Отечественная Война началась в: продолжение вопроса теста A) 1945 г. B) 1914 г. C) 1928 г. D) 1999 г. E) 2000 г. посл обработки1) Великая Отечественная Война началась в: @ родолжение вопроса теста@) 1945 г.@) 1914 г.@) 1928 г.@) 1999 г.@) 2000 г. ну вот объясни, откуда взялась красная собака???? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2011, 10:10 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
а, ну понятно оттуда же, откуда и скобки после собаки в ответах теста вот для чего я второй день объясняю, что требуется сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2011, 10:11 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
Shocker.Pro скажите пожалуйста как одновременно дать команду на замену "A)" "B)" "C)" "D)" "E)" на символ "@" пробовал так g = Replace(s, "A)" "B)" "C)" "D)" "E)", "@") - выдает ошибку С Уважением и Благодарностью Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2011, 10:20 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
replace(replace(replace(....))) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2011, 10:23 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
Большое Вам спасибо все работает как надо вопрос закрыт если кому интересно вот конечный код Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31.
С Уважением и Благодарностью Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2011, 10:38 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
Namik, или тут не всё или зачем нужно: i = i + 1 Цикла нет, когда же увидим: If i > 23 Then MsgBox "Конец" ????????? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2011, 10:55 |
|
VBA Split строки в заданном диапозоне
|
|||
---|---|---|---|
#18+
да Вы правы прошу Вас теперь все считает правильно Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31.
С Уважением и Благодарностью Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2011, 11:08 |
|
|
start [/forum/topic.php?fid=60&msg=37327853&tid=2158587]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 356ms |
total: | 497ms |
0 / 0 |