2015-09-11 3 views
0

Наши клиенты хотят, чтобы их листы Excel были отформатированы там, где новый заголовок (вся строка «1») должен быть вставлен над последним значением всякий раз, когда присутствует новое значение в столбце «A»Вставка определенной строки несколько раз в VBA

по существу я копирую строку «1» и вставить его всякий раз, когда я нахожу новое значение в столбце «A»

Вот к югу я использую, чтобы отформатировать его, но он просто продолжает цикл и аварий.

Sub insertHeader() 

Range("A2").Select 

Do Until ActiveCell.Value = "" 

    If ActiveCell.Value = ActiveCell.Offset(1, 0) Then 

     ActiveCell.Offset.Select 

    Else 

     Range("A1").EntireRow.Insert 
     ActiveCell.Offset.Select 

    End If 

Loop 

End Sub 
+0

, что вы пытались найти ошибку ? Должен ли этот цикл перемещаться из строки в строку, пока ячейка не будет пустой? – CPMunich

ответ

0

Вы должны сказать, Смещение, как и где смещать. Как и в Offset (смещение строки, столбец смещения):

ActiveCell.Offset(1,0).Select 

О, а также копии, человек ... Хорошо, вот код:

range("a3").select 
Do Until ActiveCell.Value = "" 

    If ActiveCell.Value <> ActiveCell.Offset(-1, 0).Value Then 
    'comparing it upwards, as the standard insert will insert a row above your active cell. 

    ActiveCell.EntireRow.Insert 
    Range("a1").EntireRow.Copy ActiveCell 
    ActiveCell.Offset(1, 0).Select 
    'move on to the row I was at before inserting a new row 

    End If 
    ActiveCell.Offset(1, 0).Select 
Loop 
+0

Awesome Possum. Человек, не могу поверить, что я пропустил это смещение, и моя логика была испорчена. Огромное спасибо. – Ken

Смежные вопросы