【发布时间】:2020-07-20 17:52:56
【问题描述】:
Here is my Sheet 我在其中写了这段代码
Sub L()
Dim rng As Range, cell As Range
Set rng = Range("P12:P1322")
For Each cell In rng
If cell.Value > 12 Then
cell.Interior.ColorIndex = 3
ActiveCell.Range(rng).Activate
Copy.selection
Range(rng).Offset(1, 0).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrAbove
'Range(rng).Offset(1).EntireRow.PasteSpecial xlPasteFormats
End If
Next cell
End Sub
我也尝试了另一个代码,但它不起作用。 您会看到红色单元格 这些单元格的值大于 12 我想在活动行下方添加具有相同格式的行。
【问题讨论】:
-
如果要插入行,则需要自下而上循环。
-
你能用文字解释一下你想让代码做什么。该代码没有在任何地方添加任何行。另外,您的工作表中实际上是否有一个名为
"rng"的范围?你的意思是ActiveSheet.Range("rng").Activate而不是ActiveCell...?你为什么要激活这个范围?除了让你的代码运行慢得多之外,它似乎没有做任何事情。 -
@SuperSymmetry 看到我想在一个范围内循环检查单元格值是否大于 12,如果它是真的,然后在我尝试之前添加与上面相同格式的活动范围下方的行它只是移动单元格而不是行的活动单元格。
标签: excel vba loops format range