У цьому випадку 2013 року дані рахунків із Depoer потрібно було переносити до Oberone. Програма Undepoer частково формувала Excel-файл із бази, але перед завантаженням користувачі вручну додавали рядки та відомості про компанію, що управляє цінними паперами.
Для тисяч записів це забирало багато часу й створювало ризик механічної помилки. Ми підготували макрос, який вставляє рядки та заповнює задані поля.
Початковий код
Код збережено з оригінальними назвами й рядками-заповнювачами. Значення NumRows = 2495, активна комірка та структура аркуша стосуються вихідного прикладу.
Sub Макрос1()
Rows("3:3").Select
NumRows = 2495
NumRows = NumRows*2
For x = 2 To NumRows+1
If (x Mod 2) = 0 Then
ActiveCell.Rows.EntireRow.Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End If
If (x Mod 2) = 0 Then
Cells(x+1, 1).FormulaR1C1 = "Тут заполняем информацию в 1-й ячейке"
Cells(x+1, 2).FormulaR1C1 = "Заполняем код компании"
Cells(x+1, 3).FormulaR1C1 = "Заполняем название компании"
Cells(x+1, 4).FormulaR1C1 = "Заполняем название компании"
End If
ActiveCell.Offset(1, 0).Select
Next
End SubЯк працює цикл
Макрос починає з виділення третього рядка. Початкове значення NumRows подвоюється, а цикл перевіряє парність x: на парних кроках вставляється рядок і записуються значення в перші чотири стовпці. Після кожного кроку активне виділення зміщується на рядок униз. Тому кількість записів і початкова позиція мають відповідати саме вашому файлу.
Перед використанням
Працюйте з копією файлу. Замініть заповнювачі фактичними значеннями, перевірте кількість рядків, розташування стовпців і початкове виділення. Спочатку виконайте перевірку на невеликому наборі та звірте сформовані записи до імпорту.
Метод Range.Insert у документації Microsoft вставляє комірки або діапазон зі зсувом наявних даних. Цей макрос — приклад підготовки конкретного файлу, а не універсальний конвертер для всіх версій Depoer та Oberone.