Тема: VBA: Непонятки с выделением смежного символа слева от вставки
Привет, народ! Столкнулся с лютыми непонятками, прошу разъяснить! Допустим, есть такой код:
Dim Range1 As Word.Range
Set Range1 = Selection.Range
Selection.Next(Unit:=wdCharacter, Count:=2).Select
Range1.Text = "-"
Set Range1 = NothingДопустим, есть тестовый текст: "SomeText". Теперь делаем так: выделяем в нём букву "o" и запускаем наш код выше -- выделение я тут условно для наглядности обрамлю квадратными скобками (ясно, что в реальности скобок нет). Ниже показано состояние: было/стало (т.е. до выполнения кода и после):
S[o]meText -- S-m[e]TextВместо "o" вставилось тире "-" (точнее, минус, но это не суть), а выделение перешло на [e] -- так и должно по-идее быть, тут всё норм. Но вот если переместить выделение на ОДИН символ, (т.е. написать в коде выше Count:=1, а не Count:=2), то будет вот такая фигня:
S[o]meText -- S[-m]eTextТо есть выделение почему-то расширяется с [m] на вставленное тире [-m], хотя по идее должно быть вроде [m]
При этом если делать аналогично, но вставлять слева -- вот так:
Dim Range1 As Word.Range
Set Range1 = Selection.Range
Selection.Previous(Unit:=wdCharacter, Count:=1).Select
Range1.Text = "-"
Set Range1 = NothingТо всё норм, расширения выделения не происходит:
S[o]meText -- [S]-meText
