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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.07.2010, 22:05   #1
edition
Пользователь
 
Регистрация: 30.06.2010
Сообщений: 27
По умолчанию Нарастить базу данных

Добрый день!
Нужна помощь!!!
Необходимо искуственно нарастить базу данных.

Имеем массив данных из 7500 записей!

Как только в колонке <adr2> встречается пустое поле необходимо вставить указанное в колонке <nr.> количество рядов и в них скопировать значение предыдущего ряда.
На примере:
1-ое пустое поле-алгоритм-вставляем 1 ряд и копируем значение <сссс>.
2-oe путое поле-вставляем 8 пустых рядов и значение <3333>, 3-е пустое поле в <adr2> - вставляем 3 пустых ряда и значение <4444>

ID nr. uniq1 uniq2 name date adr1 adr2
aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa
ssss ssss ssss ssss ssss ssss ssss ssss
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
cccc cccc cccc cccc cccc cccc cccc cccc
5 1
dddd dddd dddd dddd dddd dddd dddd dddd
eeee eeee eeee eeee eeee eeee eeee eeee
rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr
3333 3333 3333 3333 3333 3333 3333 3333
12 8
4444 4444 4444 4444 4444 4444 4444 4444
4 3

Как автоматизировать процесс?
edition вне форума Ответить с цитированием
Старый 08.07.2010, 22:08   #2
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

выложите файл с примером, количество данных можно уменьшить, конфиденциальные данные замените
EugeneS вне форума Ответить с цитированием
Старый 08.07.2010, 22:27   #3
edition
Пользователь
 
Регистрация: 30.06.2010
Сообщений: 27
По умолчанию

Фрагмент данных!
Вложения
Тип файла: rar fragment_DB.rar (19.7 Кб, 16 просмотров)
edition вне форума Ответить с цитированием
Старый 09.07.2010, 11:08   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Вставлять выше.ниже этого поля,убрать это поле
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 09.07.2010, 15:40   #5
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Код:
 Sub Start()
 Dim n As Long, m As Long, L As Long
 Application.ScreenUpdating = False
With Sheets(1)
  dd = Split(.Range("H1:H65500").SpecialCells(xlCellTypeConstants).Address, ",", -1)
  ReDim adr(0 To UBound(dd))
  For n = 0 To UBound(dd)
     Dim KL
     KL = Split(dd(n), "$", -1)
     adr(n) = KL(UBound(KL))
  Next
 For n = UBound(adr) To 0 Step -1
    On Error Resume Next
     L = .Cells(adr(n) + 1, 2)
  For m = 1 To L
    .Rows(adr(n) + 1).Insert
    .Rows(adr(n)).Copy .Rows(adr(n) + 1)
  Next
 Next
 End With
 
  Application.ScreenUpdating = True
End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 09.07.2010, 16:48   #6
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

см. вложение
Вложения
Тип файла: zip fragment_DB.zip (32.5 Кб, 16 просмотров)
EugeneS вне форума Ответить с цитированием
Старый 12.07.2010, 00:06   #7
edition
Пользователь
 
Регистрация: 30.06.2010
Сообщений: 27
Хорошо

Огромное спасибо!!! Всё получилось!
edition вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать базу данных west23 Microsoft Office Access 2 11.02.2010 21:20
Создать базу данных u108 Помощь студентам 2 19.01.2010 16:01
Кто нибудь может подсказать как нарастить Дату определенное кол-во раз? •ScReam•™ Помощь студентам 2 18.06.2009 01:18
Создать базу данных Master of Puppets Microsoft Office Excel 5 10.06.2008 13:34
Открыть базу данных MogilShik Помощь студентам 3 11.10.2007 17:11