Тема: Методы модификации диапазона Range в Word
Здравствуйте. Как выбрать прерывающийся диапазон наподобие выделения выполненного с нажиманием Ctrl. Спасибо.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Здравствуйте. Как выбрать прерывающийся диапазон наподобие выделения выполненного с нажиманием Ctrl. Спасибо.
Здравствуйте. Как выбрать прерывающийся диапазон наподобие выделения выполненного с нажиманием Ctrl. Спасибо.
Не слышал о существовании такого способа. Если откроете этот философский камень - сообщите . К сожалению, ренж непрерывный. Вопрос - зачем вам это? Уверен, что можно реализовать задачу иначе.
Ну ладно, понял. Не понял как работает MoveWhile, будто не работает...
Moves the specified range while any of the specified characters are found in the document.
Пока любой из заданных символов не встретится... А какое отличие от moveuntil
...range until one of the...
Do while - действие происходит пока истинно выражение, т.е. пока выполняется условие - двигаемся дальше. Do until - действие происходит до тех пор пока не встретим условие. А так практически идентичны.
i = 10
Do While i = 10
i = i + 1
Loop
Пока i = 10 будет добавляться по единице
i = 10
Do Until i = 10
i = i + 1
Loop
Если i = 10, то не будет добавляться
Вообще в интернетах есть на русском про это. Сам обычно не использую Do until.
Да не, я имел ввиду метод Range.MoveWhile...
Да не, я имел ввиду метод Range.MoveWhile...
По аналогии только не Do while, а Move while. Двигается область пока условие соблюдается
Do until Двигается область, пока не обнаружится соблюдение условия.
Двигается область пока условие соблюдается
With Selection.Paragraphs(1).Range
.Find.Text = "test"
.Find.Wrap = wdFindStop
.Find.Execute
'.MoveUntil Cset:="t", Count:=100
.MoveWhile Cset:="t" Count:=10 ' wdForward
.select
End With
.MoveUntil работает если присутствует .select
При .MoveWhile выделяется слово test и всё.
А, вроде работает, если написать testttt: ставит курсор в конец.
в конец этого слова
Пример из справки тоже работает, только нужно добавлять .select
Dim aRange As Range
Set aRange = ActiveDocument.Characters(1)
aRange.MoveWhile Cset:="Tt", Count:=wdForward
aRange.Select
End Sub
Как пользоваться методом .Collapse?
Получается collapse нужен чтобы уничтожить range. А я сначала подумал что он позволяет сворачивать блок текста, но похоже это в ворде нельзя.
With Selection.Paragraphs(1).Range
.Find.Text = "test"
.Find.Wrap = wdFindStop
.Find.Execute
.Collapse Direction:=wdCollapseEnd
.MoveEnd Unit:=wdCharacter, Count:=10
.Select
End With
Выделяет 10 символов после слова test. А если без collapse - то выделяет их вместе со словом test.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться