Страницы: 1
RSS
Доработка макроса для извлечения инфы из ячеек в плоскую таб
 
Здравствуйте, нужна Ваша помощь.
Есть макрос.
Код
Sub denn1812()
Dim u(), r&, c&, schet, r1&, sh As Worksheet, re As Object, x, h
u = ActiveSheet.UsedRange.Value
h = "#'" & Replace$(ActiveSheet.Name, "'", "''") & "'!"  'заготовка для гиперссылки
Set sh = Sheets("Плоская табл")
r1 = 3           'строка, к кот. начинать вывод
schet = u(6, 1)
Set re = CreateObject("vbscript.regexp")
re.Global = True
re.ignorecase = True
re.Pattern = "([a-zа-я]+) Сч. (\d+)"
For r = 7 To UBound(u)           'цикл по строкам
If Not IsEmpty(u(r, 1)) Then schet = u(r, 1)
For c = 5 To UBound(u, 2)           'цикл по столбцам
For Each x In re.Execute(u(r, c))
'   sh.Cells(r1, 3) = Cells(r, c).Address(0, 0)    'простой ввод адреса ячейки
sh.Hyperlinks.Add sh.Cells(r1, 3), "", h & Cells(r, c).Address, , Cells(r, c).Address(0, 0)
sh.Cells(r1, 4) = x.submatches(1)
sh.Cells(r1, 5) = x.submatches(0)
sh.Cells(r1, 7) = schet
sh.Cells(r1, 8) = u(4, c)
r1 = r1 + 1
Next
Next
Next
End Sub
Он извлекает из сводной табл нужные данные из ячеек в плоскую таблицу.(в файле все есть и макрос)
Проблема в том что макрос пропускает ячейки где есть надпись "В указанную ячейку данные из Системы не выгружаются"
Хотелось бы чтобы макрос тоже создавал для этих ячеек ячейки и прописывал их в плоскую табл - номер счета.

Буду заранее благодарен,
Спасибо
 
А вы уверены что проблема в коде VBA. Я правда не умею писать VBS-ки, но тут в коде точно строка:

Код
Set re = CreateObject("vbscript.regexp")


Погуглил, он тоже занимается:

Сравнить текст с заданным шаблоном. Например, введённый пользователем телефонный номер должен соответствовать шаблону "8(***)***-***-**", где * - любая цифра, но не буква.
Заменить или удалить из введённой пользователем строки текст, соответствующий заданному шаблону.
Извлечь из введённой пользователем строки текст, соответствующий заданному шаблону.
http://www.script-coding.com/WSH/RegExp.html
Когда испробованы все варианты, я начинаю плясать с бубном. Как правило — помогает.
 
Проблемы в VBA  нет просто не знаю как добавить это дополнение к коду(
 
Так надо?
Скрытый текст
Изменено: Doober - 23.04.2014 12:33:12
 
Спасибо Большое!!! помогло
 
Doober, А как добавить еще один критерий поиска. Например в ячейке с "([a-zа-я]+) Сч. (\d+)" есть слово класс пробел и (\d+)(цифры).... я долго мучался так и не вышло. я добавлял второе условие (см. приложенный файл) но что то не то получалось, он класс выводит, а другое нет. в общем как то неправильно
Или такое условие "по виду движения X02, Y02" или  по виду движения Y14, Y15", нужно что бы X02, Y02 выводил и Y14, Y15 уже в другую строку (в приложенном файле есть ячейки с этими примерами, там написан класс и по виду движения)

Буду еще раз очень очень признателен если поможете))
 
Так надо?
 
Спасибо большое,
Только макрос работает не на 100%. вывод по виду движения почему то не всех ячеек. одну извлек а потом через 10 еще одну.
Так же хотелось бы чтобы X02 Y02 были в одной ячейке а не раздельно.

Огромное Вам спасибо
 
Я же ваших глобальных задач по выводу не знаю
.У вас есть  извлеченные данные,распределяйте их по своим правилам
Страницы: 1
Читают тему
Наверх