У меня есть база данных, где каждая строка содержит различную информацию о компании (имя, адрес, веб-сайт, телефон и т.д.). Каждая строка также содержит три контакта и их соответствующий заголовок. Заголовки: Имя генерального директора, Должность генерального директора, Имя 2, Название 2, Имя 3, Название 3. Моя проблема заключается в том, что при импорте в мой CRM он захватывает только один контакт на строку. Похоже, мне нужно дублировать исходную строку (с сохранением всей информации о компании) и иметь одно имя контакта в каждой строке. Пожалуйста, помогите мне сделать это! Спасибо оооочень большое !!!
1 ответ
2
Вы можете делать что хотите на основе макроса Excel. Вы должны включить вкладку Разработчик в Excel 2013. Затем запишите макрос с включенным "Использовать относительную ссылку" и создайте цикл, который перенесет company, name2, title2 в новую строку. Затем сделайте это снова для name3 и title3.
Макро шаги:
- перейти к A2, если у вас есть заголовок строки
- начать запись макроса
- вставить строку, когда выделена строка 3
- скопируйте и вставьте компанию сверху в новом ряду
- вырезать и вставить name2, title 2 в новую строку
- вставьте новую строку снова
- мило и вставить имя 3, и заголовок на новую строку
- затем переместите свою ячейку на a5.
- Это будет ваша конечная точка для повторения макроса.
Ваш записанный макрос должен выглядеть примерно так:
Sub Macro2()
'
' Macro2 Macro
'
'
ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveCell.Offset(-1, 0).Range("A1").Select
Selection.Copy
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(-1, 3).Range("A1").Select
Application.CutCopyMode = False
Selection.Cut
ActiveCell.Offset(1, -2).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(-1, 3).Range("A1").Select
Selection.Cut
ActiveCell.Offset(1, -2).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveCell.Offset(-1, 0).Range("A1").Select
Selection.Copy
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(-2, 5).Range("A1").Select
Application.CutCopyMode = False
Selection.Cut
ActiveCell.Offset(2, -4).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(-2, 5).Range("A1").Select
Selection.Cut
ActiveCell.Offset(2, -4).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(1, -2).Range("A1").Select
End Sub
Если вам нужно повторить более одного раза, то у вас есть другой макрос, который вызывает этот макрос столько раз, сколько вы хотите:
Sub Test()
Call Macro2(3) 'run macro 3 times
End Sub