2016-09-16 3 views
-3

Я пытаюсь вставить х строк, x =12 после значения ячейки, то есть даты, и мой код не работает, пожалуйста, помогите,Вставка х строк после значения даты в Excel VBA

Sub HHRowInserter() 
Dim HHRw As Range 
For Each HHRw In Range("A1:A2251") 
If HHRw.Value Like #9/30/2017# Then 'mm/dd/yyyy '30-Sep-17 
HHRw.Offset(12, 0).EntireRow.Insert 
End If 
Next HHRw 
End Sub 

ответ

1

Следующая строка кода вставки одной строки в месте 12 строк ниже HHRw:

HHRw.Offset(12, 0).EntireRow.Insert 

чтобы вставить 12 строк, необходимо объявить диапазон 12 строк:

Range(HHRw.Offset(1).Address & ":" & HHRw.Offset(12).Address).EntireRow.Insert 

Имейте в виду, что цикл For петли из строк с 1 по 2251. Когда вы находите дату и вставляете 12 строк, вы затем нажимаете весь контент ниже места пасты вниз на 12 строк. Когда вы достигнете строки 2251st, у вас может быть значительное количество контента за пределами этой строки, и этот контент не будет проверяться вашим циклом For.

Один из способов вы можете идти о решении это повторно проверить на последнюю использованную строку и превратить петлю в Do While:

Sub RowInserter() 

    Dim LastRow As Integer, LoopCounter As Integer 
    Dim TestCell As Range 

    LoopCounter = 1 
    LastRow = Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row 
    Do While LoopCounter <= LastRow 
     Set TestCell = Range("A" & LoopCounter) 
     If IsDate(TestCell.Value) Then 
      If DateValue(TestCell.Value) = DateValue("30-Sep-2017") Then 
       Range(TestCell.Offset(1).Address & ":" & TestCell.Offset(12).Address).EntireRow.Insert 
       LoopCounter = LoopCounter + 13 
      Else 
       LoopCounter = LoopCounter + 1 
      End If 
     Else 
      LoopCounter = LoopCounter + 1 
     End If 
     LastRow = Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row 
    Loop 

End Sub 
+0

ничего не произошло, когда я с поправками в соответствии с вашим посоветуйте – user3287522

+0

у меня есть отредактировал код выше, используя функцию IsDate. – DGulledge

+0

Не работает sythex error – user3287522