[英]Inserting X number of rows dependent on cell value and formatting the new rows
我在Excel 2010中有一個數據表,該數據表從第10行開始,每行在I列中都包含計算所得的數字(X)。該代碼用於在(X)時在表中的任何行下方插入(X)個新行大於1。
當前代碼可以實現這一點,但是當在表中添加新條目並再次運行該代碼時,將在已插入的其他行下方添加更多空白行。
我還想將A:G列中的信息從包含(X)的行復制到每個新插入的行,並使原始行以粗體顯示。
Sub Insert_SB()
Dim lngCounter As Long
For lngCounter = Range("I" & Rows.count).End(xlUp).row To 10 Step -1
With Cells(lngCounter, "I")
If IsNumeric(.Value) And .Value > 1 Then
With .Offset(1, 0).Resize(.Value - 1, 1)
.EntireRow.Insert
End With
If IsNumeric(.Value) And .Value = 0 Then Exit For
End If
End With
Next lngCounter
End Sub
例如,您的代碼將在單元格I11中的5號下方插入5個空白行。 當您再次運行代碼時,它將再次找到數字5並插入另外5行...。您將需要告訴它不需要。 也就是說,您將需要先對數字5下方的空白行進行計數,以查看是否已經存在5,或者需要將5標記為“完成”(也許通過寫到K列)
此功能可能會告訴您是否需要添加行:
Function NeedsMoreRows(rngToCheck As Range) As Boolean
Dim intNumBlankRows As Integer
Dim intCounter As Integer
'this is the number of blank rows it should have underneath it
intNumBlankRows = rngToCheck.Value
For intCounter = 1 To intNumBlankRows
If ActiveSheet.Cells(rngToCheck.Row + intCounter, rngToCheck.Column) <> vbNullString Then NeedsMoreRows = True
Next intCounter
End Function
如果IsNumeric(.Value)和.Value> 1並且NeedsMoreRows(Cells(lngCounter,“ A”))然后
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.