У меня есть база данных, в которой каждая строка содержит различную информацию о компании (название, адрес, веб-сайт, телефон и т. д.). Каждая строка также содержит три контакта и соответствующие им должности. Заголовки: Имя генерального директора, Должность генерального директора, Имя 2, Должность 2, Имя 3, Должность 3. Моя проблема в том, что при импорте в мою CRM она захватывает только один контакт на строку. Похоже, мне нужно продублировать исходную строку (сохранив всю информацию о компании) и иметь одно имя контакта в каждой строке. Пожалуйста, помогите мне это сделать! Большое спасибо!!!
решение1
Вы можете сделать все, что захотите, на основе макроса 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