Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Basic / VBA


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Гуревич Александр Львович
Статус: 10-й класс
Рейтинг: 1420
∙ повысить рейтинг »
Megaloman
Статус: Бакалавр
Рейтинг: 693
∙ повысить рейтинг »
Botsman
Статус: Специалист
Рейтинг: 508
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / Basic/VBA

Номер выпуска:939
Дата выхода:24.10.2009, 16:00
Администратор рассылки:Калашников О.А., Руководитель
Подписчиков / экспертов:362 / 95
Вопросов / ответов:1 / 1

Вопрос № 173431: Доброго времени суток, имеется массив данных в формате access или excel, в котором необходимо изменение порядка знаков на обратный в строке, возможно ли это сделать в Visual Basic и если да, то можно ли получить подробное объяснение по скольку не си...



Вопрос № 173431:

Доброго времени суток, имеется массив данных в формате access или excel, в котором необходимо изменение порядка знаков на обратный в строке, возможно ли это сделать в Visual Basic и если да, то можно ли получить подробное объяснение по скольку не силен в языке программирования.

Отправлен: 19.10.2009, 15:39
Вопрос задал: Strela, Посетитель
Всего ответов: 1
Страница вопроса »


Отвечает Megaloman, Бакалавр :
Здравствуйте, Strela.
© Цитата: Из минифорума вопроса
ИМЕЕМ
200 1002 PF
300 1002 PF
400 1002 PF
500 1002 PF

ДОЛЖНО БЫТЬ
FP 2001 002
FP 2001 003
FP 2001 004
FP 2001 005

В Excel Можно написать функцию пользователя
Я решал задачу в Excel 2003

Сервис - Макрос - Редактор Visual Basic
В открывшемся вверху слева окне VBA Project щелкнем правой кнопкой мышки по пустому полю

Insert -Module

Вставим справа в окне код функции
Код:
Functi
 on Revers(a)
n = Len(a)
If n <> 0 Then
Rez = ""
For i = 1 To n
Rez = Mid(a, i, 1) + Rez
Next
Revers = Rez
End If
End Function
Как это работает: в аргументе передаётся значение (строка, значение ячейки), определяется её длина, затем в цикле последовательно вырезается по символу и формируется новая строка задом - наперёд.
Закроем окно Visual Basic

Далее, допустим в ячейке A1 у Вас некая строка, которую надо переформровать "задом-наперёд"
Пишем, например, в ячейке B1 формулу =Revers(A1)
Эту формулу, как и встроенную ф-ию Excel, можно размножать и на другие ячейки
Результат - перевёрнутая строка.

Можно написать макрос, например, вот с таким кодом
Код:
For Each R In Selection
a = R.Value
n = Len(a)
If n <> 0 Then
Rez = ""
For i = 1 To n
Rez = Mid(a, i, 1) + Rez
Next
R.Value = Rez
End If
Next

Выбираете диапазон клеток, в котором находятся строки для преобразования, запускаете макрос на выполнение.
Принцип работы тот же, только тут еще организован цикл по выбранным Вами ячейкам.
Всё!

-----
Нет времени на медленные танцы

Ответ отправил: Megaloman, Бакалавр
Ответ отправлен: 20.10.2009, 14:13

Оценка ответа: 5

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 255627 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.10 от 20.10.2009

    В избранное