Excel 添加新行并格式化添加的新行

Excel 添加新行并格式化添加的新行,excel,vba,Excel,Vba,我有一张表,其中行数是动态的。我正在尝试添加一个宏,该宏在每个活动行之后添加一个新行,它应该在添加的每个新行的C列下添加文本“No Show”,并在D列下添加单元格值E5 下面是一个例子: 当前页: 宏后:(E5中的测试为假日) 我有一个宏来添加新的空行,但不知道如何集成它的其他部分 Sub Insert_Blank_Rows() Selection.End(xlDown).Select Do Until ActiveCell.Row = 1 ActiveCell.EntireRo

我有一张表,其中行数是动态的。我正在尝试添加一个宏,该宏在每个活动行之后添加一个新行,它应该在添加的每个新行的C列下添加文本“No Show”,并在D列下添加单元格值E5

下面是一个例子:

当前页:

宏后:(E5中的测试为假日)

我有一个宏来添加新的空行,但不知道如何集成它的其他部分

Sub Insert_Blank_Rows()

Selection.End(xlDown).Select
Do Until ActiveCell.Row = 1
    ActiveCell.EntireRow.Insert shift:=xlDown
    ActiveCell.Offset(-1, 0).Select
Loop

End Sub

如果我理解你的问题,你可以:

在本例中,我假设您在单元格E5中有文本Holiday

我试着不改变你的密码

编辑图像和代码

(因为在我使用E1单元之前,我不会将AB…写入新列)

在执行宏之前

后宏

我尝试了代码并成功了

希望这有助于向后循环:

Option Explicit

Sub Insert_Blank_Rows()
    Dim iRow As Long
    Dim myText As String

    myText = Range("E5").Text
    With Selection
        For iRow = .Rows.Count To 1 Step -1
            .Rows(iRow + 1).EntireRow.Insert shift:=xlDown
            With .Rows(iRow + 1)
                .Range("A1:B1").Value = .Offset(-1).Range("A1:B1").Value
                .Range("C1:D1").Value = Array("No Show", myText)
            End With
        Next
    End With
End Sub

我现在用我的代码编辑了这个问题谢谢你的链接…你能评论一下你的代码吗?我想了解一些代码行…这对我来说是新的…谢谢…例如,其中的行是vE5=[E5]…
vE5=[E5]
表示“获取范围E5的值并分配给vE5变量”。因为我不知道有多少行,所以我将
E5
range的值存储在变量中。然后我就从下到上。当我插入行时,要复制的数据比插入的数据少一行-因此当前行
r
中的“-1”。我尝试了您的代码,但没有按要求“工作”…A列和B列中没有数据。没有节目和假期被写入没有正确的单元格…如果你想回答问题,你必须更新你的代码…@Ferdinando,你试过这个吗?是的,我试过了,但没有“工作”,因为取决于哪个单元格处于活动状态。。。
Option Explicit

Sub Insert_Blank_Rows()
    Dim iRow As Long
    Dim myText As String

    myText = Range("E5").Text
    With Selection
        For iRow = .Rows.Count To 1 Step -1
            .Rows(iRow + 1).EntireRow.Insert shift:=xlDown
            With .Rows(iRow + 1)
                .Range("A1:B1").Value = .Offset(-1).Range("A1:B1").Value
                .Range("C1:D1").Value = Array("No Show", myText)
            End With
        Next
    End With
End Sub
Sub FFF()
    Dim r&, vE5
    vE5 = [E5]: r = Cells(Rows.Count, 1).End(xlUp).Row + 1
    While r > 1
        Rows(r).Insert
        Cells(r, 1).Resize(, 4) = Array(Cells(r - 1, 1).Resize(, 2), "No Show", vE5)
        r = r - 1
    Wend
End Sub