Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2015, 15:57   #1
flacon45
Пользователь
 
Регистрация: 21.01.2011
Сообщений: 20
По умолчанию цикл по строке

Добрый день!
Подскажите плз. как сделать цикл по строке.

stroka = Cells(3, "C")
fl = False
k = 1

Do While fl = False

k = k + 1
Loop
flacon45 вне форума Ответить с цитированием
Старый 18.02.2015, 16:01   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

по какой строке?

stroka = Cells(3, "C")
это не строка, это одна ячейка С3

с какой по какую ячейку надо перебирать, и зачем?
EducatedFool вне форума Ответить с цитированием
Старый 18.02.2015, 16:13   #3
flacon45
Пользователь
 
Регистрация: 21.01.2011
Сообщений: 20
По умолчанию

смысл вот такой.

есть запись в ячейке: hhjjjjjjj №9554-5545445 рвофрфвфыо
нужно извлечь №9554-5545445.
Вот я и думал сделать цикл перебрать эту строку и выбрать номер, который использовать для дальнейшей работы
flacon45 вне форума Ответить с цитированием
Старый 18.02.2015, 16:38   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

однако - это ячейка, которая содержит строку!
такой цикл подойдет:
Код:
Sub ExtractN()
  Const s As String = "hhjjjjjjj №9554-5545445 рвофрфвфыо"
  With CreateObject("vbscript.regexp")
    .Pattern = "№\d+-\d+"
    If .test(s) Then MsgBox .Execute(s)(0)
  End With
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 18.02.2015, 16:44   #5
flacon45
Пользователь
 
Регистрация: 21.01.2011
Сообщений: 20
По умолчанию

спасибо попробую разобраться в скрипте
flacon45 вне форума Ответить с цитированием
Старый 18.02.2015, 17:26   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

или без заумностей
Код:
s = "hhjjjjjjj №9554-5545445 рвофрфвфыо"
MsgBox Split(Split(s, "№", 2)(1), " ", 2)(0)
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 18.02.2015, 17:45   #7
flacon45
Пользователь
 
Регистрация: 21.01.2011
Сообщений: 20
По умолчанию

спасибо. вот так чуток по дольше но справился)

Строка-ячейка:
Уступка прав №987 от 03.02.2011 г. по КД №9903-9903-4139-C1-M-062-017-065777 от 16.07.12 г.

скрипт:
Dim stroka, stroka2, stroka3

stroka = Cells(3, "C")

iFirst = InStr(stroka, "КД №")

stroka2 = Mid(stroka, iFirst + 4)

iLast = InStr(stroka2, " ")

stroka3 = Mid(stroka2, 1, iLast)
Cells(3, "G") = stroka3

Результат: 9903-9903-4139-C1-M-062-017-065777
flacon45 вне форума Ответить с цитированием
Старый 18.02.2015, 18:04   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Почти так же:
Код:
s = "Уступка прав №987 от 03.02.2011 г. по КД №9903-9903-4139-C1-M-062-017-065777 от 16.07.12 г."
MsgBox Split(Split(s, "КД №", 2)(1), " ", 2)(0)
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
написать процедуры для “Цикл For ... Next ” и «Цикл Do ... Loop» по ниже приведенному условию Кристина_Патачиц Microsoft Office Excel 3 17.04.2013 17:01
ребят цикл переберающий ячейки в строке Obey177 Microsoft Office Excel 3 18.08.2012 12:53
Цикл по времени - Как сделать так чтобы цикл выполнялся к примеру 10 секунд ? Anarki Общие вопросы C/C++ 3 13.11.2009 19:23
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34