Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как в Word установить курсоh в конец абзаца? / 25 сообщений из 40, страница 1 из 2
06.04.2015, 13:58
    #38928017
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
Задача 1: установить курсов в конец того абзаца, в начале которого в данный момент стоит курсор (абзац состоит из нескольких строк)
Задача 2: установить курсов в конец определенного по счету абзаца (абзац состояит из нескольких строк)
...
Рейтинг: 0 / 0
06.04.2015, 14:37
    #38928089
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
interskЗадача 1нашел ответ прям в хелпе по функции Collapse

Код: vbnet
1.
2.
3.
4.
Set myRange = Selection.Paragraphs(1).Range
myRange.Collapse Direction:=wdCollapseEnd
myRange.MoveEnd Unit:=wdCharacter, Count:=-1
myRange.Select
...
Рейтинг: 0 / 0
06.04.2015, 15:34
    #38928182
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
Shocker.Pro, а если у меня такой код заполнения word
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
With AppS.Selection

        .Font.Name = "Tahoma": .Font.Size = 10
        .MoveDown Unit:=wdLine, Count:=6
        .TypeParagraph: .TypeParagraph
        
        .ParagraphFormat.LeftIndent = AppS.CentimetersToPoints(11)
        .ParagraphFormat.Alignment = wdAlignParagraphLeft
            .TypeText Text:="Руководителю"
        
        .TypeParagraph
            .ParagraphFormat.Alignment = wdAlignParagraphCenter
            .TypeText Text:=CStr(Forms!Данные.плКраткоеНаименование)
        
        .TypeParagraph
        .ParagraphFormat.Alignment = wdAlignParagraphCenter
        .TypeText Text:=CStr(Forms!Данные.Адрес)
            
            .MoveUp Unit:=wdParagraph, Count:=2
            
                .ParagraphFormat.Borders(wdBorderBottom).LineStyle = AppS.Options.DefaultBorderLineStyle
                .ParagraphFormat.Borders(wdBorderBottom).LineWidth = AppS.Options.DefaultBorderLineWidth
                .ParagraphFormat.Borders(wdBorderBottom).Color = AppS.Options.DefaultBorderColor



и мне надо встать на конец введенного
Код: vbnet
1.
.TypeText Text:=CStr(Forms!Данные.Адрес)

как это сделать?
...
Рейтинг: 0 / 0
06.04.2015, 15:48
    #38928204
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
По идее так же
Что не получается?
...
Рейтинг: 0 / 0
06.04.2015, 16:05
    #38928231
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
Shocker.ProПо идее так же
Что не получается? получилось - спасибо за идею, хотел просто обойтись без объявления переменной myRange, но не получилось

Set myRange = AppS.Selection. Paragraphs(1).Range

пытался сократить так (не работает)

Код: vbnet
1.
2.
3.
.Paragraphs(1).Range.Collapse Direction:=wdCollapseEnd
.Paragraphs(1).Range..MoveEnd Unit:=wdCharacter, Count:=-1
.Paragraphs(1).Range..Select
...
Рейтинг: 0 / 0
06.04.2015, 16:44
    #38928307
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
Так ведь нельзя коллапсировать сам параграф - если удалить только все его содержимое.
...
Рейтинг: 0 / 0
06.04.2015, 17:01
    #38928351
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
Shocker.ProТак ведь нельзя коллапсировать сам параграф - если удалить только все его содержимое. кроме коллапса есть другой метод перейти в конец абзаца? может посчитать количество строк в абзаце -> перейти на последнюю строку -> перейти в конец строки.
Какой тогда будет код?
...
Рейтинг: 0 / 0
06.04.2015, 17:11
    #38928371
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
А зачем?

Ну, если есть желание, можете поэкспериментировать с
.Paragraphs(1).Range.Characters(.Paragraphs(1).Range.Characters.Count)
...
Рейтинг: 0 / 0
06.04.2015, 21:45
    #38928549
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
Shocker.Pro.Paragraphs(1).Rangeа что обозначает цифра 1 ?
...
Рейтинг: 0 / 0
06.04.2015, 23:46
    #38928608
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
первый параграф в диапазоне

в случае Selection, если выделения нет, то это первый и единственный параграф
...
Рейтинг: 0 / 0
07.04.2015, 06:36
    #38928692
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
вариант: для текущего положения
Код: vbnet
1.
2.
n = Selection.Paragraphs(1).Range.End - 1
ActiveDocument.Range(n, n).Select

для i-го абзаца, без использования Selection
Код: vbnet
1.
2.
n = myDoc.Paragraphs(i).Range.End - 1
Set myRange = myDoc.Range(n, n)
...
Рейтинг: 0 / 0
07.04.2015, 10:32
    #38928861
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
Казанский, спасибо
...
Рейтинг: 0 / 0
07.04.2015, 11:24
    #38928969
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
Казанскийвариант: для текущего положения
Код: vbnet
1.
2.
n = Selection.Paragraphs(1).Range.End - 1
ActiveDocument.Range(n, n).Select

пробовал по разному - ошибка (код 0)

Код: vbnet
1.
2.
3.
4.
Dim pr As Object
pr = AppS.Selection.Paragraphs(1).Range.End - 1
AppS.ActiveDocument.Range(pr, pr).Select
Set pr = Nothing
...
Рейтинг: 0 / 0
07.04.2015, 11:28
    #38928973
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
Range.End возвращает число, а не объект - ставим курсор на слово и нажимаем F1
...
Рейтинг: 0 / 0
07.04.2015, 11:50
    #38929017
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
Shocker.ProRange.End возвращает число, а не объект - ставим курсор на слово и нажимаем F1
не надо пугать меня такими словами )) подскажите как правильно написать код
ваш вариант использую
Код: vbnet
1.
2.
3.
4.
5.
6.
            Dim myRangeS As Object
            Set myRangeS = AppS.Selection.Paragraphs(1).Range
            myRangeS.Collapse Direction:=wdCollapseEnd
            myRangeS.MoveEnd Unit:=wdCharacter, Count:=-1
            myRangeS.Select
            Set myRangeS = Nothing

но хотелось бы сократить код
...
Рейтинг: 0 / 0
07.04.2015, 11:56
    #38929025
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
interskне надо пугать меня такими словамиа зачем вы тогда пишете код
Dim pr As Object
, если не понимаете, что он означает и пугаетесь его смысла?
...
Рейтинг: 0 / 0
07.04.2015, 11:58
    #38929033
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
Shocker.Pro,
что такое объект ил переменная понимаю, но вот что к чему что относиться не всегда могу понять (как в этом случае). Код Казанского можно как-то адаптировать для моих потребностей?
...
Рейтинг: 0 / 0
07.04.2015, 11:59
    #38929036
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
interskно хотелось бы сократить кодну Казанский же дал вариант в две строки
...
Рейтинг: 0 / 0
07.04.2015, 12:01
    #38929040
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
interskКод Казанского можно как-то адаптировать для моих потребностей?в чем конкретно проблема?

Код Казанского не вызывает ошибки. В ерунде, которую вы написали, работать по идее не должно. Прочитайте раздел учебника "типы данных", все равно понадобится.
...
Рейтинг: 0 / 0
07.04.2015, 12:50
    #38929127
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
Shocker.ProinterskКод Казанского можно как-то адаптировать для моих потребностей?в чем конкретно проблема?

Код Казанского не вызывает ошибки. замена вашего кода на его не работает.
Часть моего кода

Код: vbnet
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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
With AppS.Selection
        
        .MoveDown Unit:=wdLine, Count:=6
        .Font.Name = "Tahoma": .Font.Size = 9
        .TypeParagraph: .TypeParagraph
        
        .ParagraphFormat.LeftIndent = AppS.CentimetersToPoints(10)
        .ParagraphFormat.Alignment = wdAlignParagraphCenter 'wdAlignParagraphLeft
            
            .TypeText Text:="РУКОВОДИТЕЛЮ"
        
        .TypeParagraph
            .ParagraphFormat.Alignment = wdAlignParagraphCenter
            .TypeText Text:=StrConv(Forms!Данные.плКраткоеНаименование, vbUpperCase)
        
        .TypeParagraph
        .ParagraphFormat.Alignment = wdAlignParagraphCenter
        .TypeText Text:=StrConv(Forms!Данные.Адрес, vbUpperCase)
            
            .MoveUp Unit:=wdParagraph, Count:=2
            '.MoveUp Unit:=wdLine, Count:=1
            
                .ParagraphFormat.Borders(wdBorderBottom).LineStyle = AppS.Options.DefaultBorderLineStyle
                .ParagraphFormat.Borders(wdBorderBottom).LineWidth = AppS.Options.DefaultBorderLineWidth
                .ParagraphFormat.Borders(wdBorderBottom).Color = AppS.Options.DefaultBorderColor
                
        .MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdMove

'''''''''''''''''''''''''''
            Dim myRangeS As Object
            Set myRangeS = AppS.Selection.Paragraphs(1).Range
            myRangeS.Collapse Direction:=wdCollapseEnd
            myRangeS.MoveEnd Unit:=wdCharacter, Count:=-1
            myRangeS.Select
            Set myRangeS = Nothing

'''''''''''''''''''''''''''''
n = Selection.Paragraphs(1).Range.End - 1
ActiveDocument.Range(n, n).Select

'''''''''''''''''''''''''''''

        .TypeParagraph: .TypeParagraph: .TypeParagraph
...
Рейтинг: 0 / 0
07.04.2015, 12:55
    #38929140
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
всего то надо было добавить
Код: vbnet
1.
Dim n As Intege

r )
...
Рейтинг: 0 / 0
07.04.2015, 12:58
    #38929146
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
interskвсего то надо было добавить
Код: vbnet
1.
Dim n As Intege


r )всего-то надо было прочитать сообщение об ошибке.
Там-то отсюда ваш экран видно довольно плохо
...
Рейтинг: 0 / 0
07.04.2015, 13:06
    #38929158
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
Shocker.Pro, Казанский, код с
Код: vbnet
1.
ActiveDocument.Range(n, n).Select

работает только если приложение на первом плане
...
Рейтинг: 0 / 0
07.04.2015, 13:09
    #38929162
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
Используйте ThisDocument для текущего документа

и вообще поменьше работайте с Active и Selection
...
Рейтинг: 0 / 0
07.04.2015, 22:24
    #38929867
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Word установить курсоh в конец абзаца?
Shocker.ProИспользуйте ThisDocument для текущего документа

и вообще поменьше работайте с Active и Selection
как с учетом этой статьи сделать? у меня не получилось
вот код
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    Set AppS = CreateObject("Word.Application.15") 'делаем ссылку на объект Word для создания нового документа
    
    With AppS
        .Documents.Add (strPathDot_S)  'присоединяем к объекту Word шаблон по заданому пути
        .Visible = True 'запускаем приложение Word
    End With

Dim n
n = AppS.Selection.Paragraphs(1).Range.End - 1
AppS.ActiveDocument.Range(n, n).Select
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как в Word установить курсоh в конец абзаца? / 25 сообщений из 40, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]