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

Вход

Регистрация

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

 

= Мир MS Excel/После обработки в числовом виде ошибочный перевод в текст - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » После обработки в числовом виде ошибочный перевод в текст (Макросы Sub)
После обработки в числовом виде ошибочный перевод в текст
pv2 Дата: Суббота, 08.02.2014, 21:14 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Нужно скопировать лист "0114А" в лист "0214А" с дальнейшей обработкой.
Возникла проблема с обратным переводом обработанного числа в текст - в MsgBox видно отступ между первой цифрой и последующими.
Помогите решить проблему.
Сильно не пинайте - я занимаюсь VBA всего четвертый день...
[vba]
Код
Dim NameSh, NameSh1, NameSh_1 As String
Dim NameSh_ As Integer
NameSh = InputBox("Введите имя листа ", "Имя листа", "0214")
NameSh1 = NameSh + "A"
NameSh_ = Val(NameSh)
Select Case NameSh_
Case 114
NameSh_ = NameSh_ + 1100 - 1
Case Else
NameSh_ = NameSh_ - 100
End Select
' NameSh = "0" + Str(NameSh_)
NameSh = Chr(48) + Str(NameSh_)
MsgBox (NameSh)
NameSh_1 = NameSh + "A"
Worksheets(NameSh_1).Copy , Worksheets(Worksheets.Count)
[/vba]
Результат:
Run-time erroe '9'
Subscript out of range


Сообщение отредактировал pv2 - Суббота, 08.02.2014, 21:15
 
Ответить
СообщениеНужно скопировать лист "0114А" в лист "0214А" с дальнейшей обработкой.
Возникла проблема с обратным переводом обработанного числа в текст - в MsgBox видно отступ между первой цифрой и последующими.
Помогите решить проблему.
Сильно не пинайте - я занимаюсь VBA всего четвертый день...
[vba]
Код
Dim NameSh, NameSh1, NameSh_1 As String
Dim NameSh_ As Integer
NameSh = InputBox("Введите имя листа ", "Имя листа", "0214")
NameSh1 = NameSh + "A"
NameSh_ = Val(NameSh)
Select Case NameSh_
Case 114
NameSh_ = NameSh_ + 1100 - 1
Case Else
NameSh_ = NameSh_ - 100
End Select
' NameSh = "0" + Str(NameSh_)
NameSh = Chr(48) + Str(NameSh_)
MsgBox (NameSh)
NameSh_1 = NameSh + "A"
Worksheets(NameSh_1).Copy , Worksheets(Worksheets.Count)
[/vba]
Результат:
Run-time erroe '9'
Subscript out of range

Автор - pv2
Дата добавления - 08.02.2014 в 21:14
pv2 Дата: Суббота, 08.02.2014, 21:40 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Всем спасибо!
Проблему решил с помощью найденной в сборнике макросов функции:
[vba]
Код
Function ExtractNumeric(iCell)
Dim iCount As Integer
' Анализируется каждый символ входной строки iCell
For iCount = 1 To Len(iCell)
' Проверка, является ли анализируемый символ числом
If IsNumeric(Mid(iCell, iCount, 1)) = True Then
' Число добавляется в выходную строку
ExtractNumeric = ExtractNumeric & Mid(iCell, iCount, 1)
End If
Next
End Function
[/vba]

Тему можно закрывать (может, и я могу это сделать, но не вижу как).
 
Ответить
СообщениеВсем спасибо!
Проблему решил с помощью найденной в сборнике макросов функции:
[vba]
Код
Function ExtractNumeric(iCell)
Dim iCount As Integer
' Анализируется каждый символ входной строки iCell
For iCount = 1 To Len(iCell)
' Проверка, является ли анализируемый символ числом
If IsNumeric(Mid(iCell, iCount, 1)) = True Then
' Число добавляется в выходную строку
ExtractNumeric = ExtractNumeric & Mid(iCell, iCount, 1)
End If
Next
End Function
[/vba]

Тему можно закрывать (может, и я могу это сделать, но не вижу как).

Автор - pv2
Дата добавления - 08.02.2014 в 21:40
Мир MS Excel » Вопросы и решения » Вопросы по VBA » После обработки в числовом виде ошибочный перевод в текст (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

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