Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Ошибка Run-time error '9': subscript out of range - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Ошибка Run-time error '9': subscript out of range
irina18 Дата: Четверг, 30.11.2017, 09:42 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 1 ±
Замечаний: 0% ±

Excel 2013
Привет участникам форума. Имеется документ Word в котором склоняются по падежам несколько фамилий и макрос преобразует фамилию, имя и отчество в ФИО. После ввода данных в основных полях (там где изначально вводятся данные фамилии, имя и отчества) макрос выполняется правильно, но при переходе по контролам при попадании курсора на некоторые из них, выскакивает ошибка Run-time error '9': subscript out of range. В макросе ошибка указывает н строку [vba]
Код
O = Split(ContentControl.Range.Text, " ")(2)
[/vba]Прошу знатоков помочь в решении этой проблемы. Я в макросах мало что понимаю, данные для кода брала из разных источников, как говорится, я его слепила из того что было. Всем спасибо. Файл во вложении.
К сообщению приложен файл: _2.docm (55.9 Kb)


Сообщение отредактировал irina18 - Четверг, 30.11.2017, 09:43
 
Ответить
СообщениеПривет участникам форума. Имеется документ Word в котором склоняются по падежам несколько фамилий и макрос преобразует фамилию, имя и отчество в ФИО. После ввода данных в основных полях (там где изначально вводятся данные фамилии, имя и отчества) макрос выполняется правильно, но при переходе по контролам при попадании курсора на некоторые из них, выскакивает ошибка Run-time error '9': subscript out of range. В макросе ошибка указывает н строку [vba]
Код
O = Split(ContentControl.Range.Text, " ")(2)
[/vba]Прошу знатоков помочь в решении этой проблемы. Я в макросах мало что понимаю, данные для кода брала из разных источников, как говорится, я его слепила из того что было. Всем спасибо. Файл во вложении.

Автор - irina18
Дата добавления - 30.11.2017 в 09:42
_Boroda_ Дата: Четверг, 30.11.2017, 10:16 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16715
Репутация: 6504 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
У Вас там, где написано Иванов И.И., нет второго пробела, следовательно, текст делится не на 3 части, а на две - нулевую и первую. А Split(2) подразумевает наличие 3-го элемента массива
Предлагаю начало (ну и где там еще нужно) переписать так
[vba]
Код
Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
  'Именительный падеж
  ' Для преобразования Фамилии, имя и отчество в ФИО
  Dim index As String, full, fio, control As ContentControl
  Dim i As Long
   Dim F$, im$, O$
   ccrt_ = Trim(Replace(Replace(ContentControl.Range.Text, ".", ". "), "  ", " "))
   
   F = Split(ccrt_, " ")(0)
   im = Split(ccrt_, " ")(1)
   O = Split(ccrt_, " ")(2)
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеУ Вас там, где написано Иванов И.И., нет второго пробела, следовательно, текст делится не на 3 части, а на две - нулевую и первую. А Split(2) подразумевает наличие 3-го элемента массива
Предлагаю начало (ну и где там еще нужно) переписать так
[vba]
Код
Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
  'Именительный падеж
  ' Для преобразования Фамилии, имя и отчество в ФИО
  Dim index As String, full, fio, control As ContentControl
  Dim i As Long
   Dim F$, im$, O$
   ccrt_ = Trim(Replace(Replace(ContentControl.Range.Text, ".", ". "), "  ", " "))
   
   F = Split(ccrt_, " ")(0)
   im = Split(ccrt_, " ")(1)
   O = Split(ccrt_, " ")(2)
[/vba]

Автор - _Boroda_
Дата добавления - 30.11.2017 в 10:16
irina18 Дата: Четверг, 30.11.2017, 10:28 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 1 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, огромное спасибо за быстрый ответ, а самое главное, что Ваша корректировка макроса помогла. Сейчас работает без проблем. Удачного дня.
 
Ответить
Сообщение_Boroda_, огромное спасибо за быстрый ответ, а самое главное, что Ваша корректировка макроса помогла. Сейчас работает без проблем. Удачного дня.

Автор - irina18
Дата добавления - 30.11.2017 в 10:28
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!