Привет нужна помощь с макросом Есть файл с тестовыми вопросами и ответами, содержит 1200 вопросов, но формат и расположение вопросов и ответов нужно поменять. В прикрепленном файле пример вида, на Листе2 оригинальный вид теста нужно поменять как на Листе1. Нужно на столбце А после каждого вопроса добавить 3 строки потом из столбца Б взять 4 ответа и переместить в Столбец А после вопроса и все это зациклить до вопроса 1200. И добавить нумерацию вопроса как на Листе1. По сути после каждого вопроса должен бить 6 строк первые 4 ответы 5 пустой и в шестом строке нумерация.
Вопросы никуда не надо переставлять только добавить строки и туда переместить ответы
в a1 И тянуть до … =IF(MOD(ROW()-1;7)+1=1;INT((ROW()-1)/7)+1;IF(MOD(ROW()-1;7)+1=2;INDEX(Лист2!A:A;(INT((ROW()-1)/7)+1-1)*4+2);IF(MOD(ROW()-1;7)+1=7;"";INDEX(Лист2!B:B;(INT((ROW()-1)/7)+1-1)*4+MOD(ROW()-1;7))))) или =CHOOSE(LOOKUP(MOD(ROW()-1;7)+1;{1;2;3;7};{1;2;3;4});INT((ROW()-1)/7)+1;INDEX(Лист2!A:A;(INT((ROW()-1)/7)+1-1)*4+2);INDEX(Лист2!B:B;(INT((ROW()-1)/7)+1-1)*4+MOD(ROW()-1;7));"")
Цитата
barbus написал: Нужен макрос для автоматизации процесса
Есть еще проблема когда конвертировал с PDF to Excel то в тексте ячеек есть переноси как "CTRL+Enter" как убрать их чтобы не было этих переносов,можно поробовать "find to replace" но не знач как обазначить "CTRL+Enter"
Sub Ba()
Dim a As Range, n&, r&
n = 1
Application.ScreenUpdating = False
For Each a In Range("A2", Cells(Rows.Count, "A")).SpecialCells(xlCellTypeBlanks).Areas
r = a.Rows.Count
Rows(a.Row + r).Resize(3).Insert
n = n + 1
a(r + 3) = n
Cells(a.Row - 1, 2).Resize(a.Rows.Count + 1).Cut a(1)
Next
Application.ScreenUpdating = True
End Sub
Число ответов может быть разным для разных вопросов.
Андрей VG, Андрей, ну там хоть гипотетически можно структурировать, а в формуле - ( ну максимум на другую строку перенести, примечание написать, но это еще хуже может сделать.
БМВ, Работают как формулы, так и CTRL+j все исправил. Осталось сделать шрифт вопросов жирными и все. Сделал Fine & Replice в место Alt+Enter заменил пробелами
Казанский, Тебе тоже спасибо макрос тоже работает только бы добавить чтоб убирал из текстов CTRL+j поставлял пробелы в место них и делал шрифт вопросов жирными
Sub Ba()
Dim a As Range, n&, r&
n = 1
Application.ScreenUpdating = False
For Each a In Range("A2", Cells(Rows.Count, "A")).SpecialCells(xlCellTypeBlanks).Areas
r = a.Rows.Count
a(0).Font.Bold = True
Rows(a.Row + r).Resize(3).Insert
n = n + 1
a(r + 3) = n
Cells(a.Row - 1, 2).Resize(a.Rows.Count + 1).Cut a(1)
Next
Range("A:A").Replace vbLf, " ", xlPart, , , , False, False
Application.ScreenUpdating = True
End Sub