查找值从正值变为负值的行,并插入空白行

我有下面的代码获取数据表,删除大部分的列和C列中的值为零的任何行,最后按C列sorting。

我需要做的下一步是findC列中的值从正变为负的行,并插入5个空行。

我可以find其他代码示例,通过循环的值来执行一些任务,但我只需要插入行的值从正面变为负面。

Sub FormatData() Dim wsData As Worksheet Dim FirstRow As Integer Dim LastRow As Integer Dim LastRow2 As Integer Dim lrow As Integer Set wsData = Worksheets("Data") FirstRow = wsData.Range("C2").Row LastRow = wsData.Range("A" & Rows.Count).End(xlUp).Row Columns("C:Y").Select Selection.Delete Shift:=xlToLeft Columns("D:F").Select Selection.Delete Shift:=xlToLeft wsData.Range("C2:C" & LastRow).Select For lrow = LastRow To FirstRow Step -1 Set workrange = Cells(lrow, 3) If workrange.Value = "0" _ Then workrange.EntireRow.Delete Next lrow LastRow2 = wsData.Range("C" & Rows.Count).End(xlUp).Row Range("A2:C" & LastRow2).Sort Key1:=Range("C2:C" & LastRow2), Order1:=xlDescending, Header:=xlNo End Sub 

你可以在你的sorting代码之后添加如下循环到你的子结尾:

 FirstRow = wsData.Range("C2").Row LastRow = wsData.Range("C" & Rows.Count).End(xlUp).Row For lrow = FirstRow To LastRow If wsData.Cells(lrow, 3).Value >= 0 And wsData.Cells(lrow + 1, 3).Value <= 0 Then For x = 1 To 5 wsData.Rows(lrow + 1).Insert shift:=xlShiftDown Next x Exit For End If Next lrow