VBA - 在每次更改值后复制带有公式和插入的6行

时间:2014-10-02 15:17:16

标签: excel vba excel-vba

论坛新手,没有VBA体验。

我对术语并不是很熟悉,所以请原谅我,如果我在这里使用一些不正确的语言...我昨天开始搜索VBA代码但运气不错,但我不需要什么,所以我希望有人那里可以教育我。我想运行一个宏,它使用我的模板表中的公式和条件格式自动复制6个连续行,然后在每次更改值后,特别是在每次更改日期后,将所有公式和格式都插入完整。到目前为止,我可以使用以下代码然后过滤到空白并手动粘贴单元格,但它不比只复制和插入没有代码的行好多少。任何帮助都会非常感激,如果需要我可以张贴。提前谢谢!

Sub InsertRowAtChangeInValue()

    Dim lRow As Long

    For lRow = Cells(Cells.Rows.Count, "B").End(xlUp).Row To 2 Step -1
        If Cells(lRow, "B") <> Cells(lRow - 1, "B") Then
            Rows(lRow).EntireRow.Insert
            Rows(lRow).EntireRow.Insert
            Rows(lRow).EntireRow.Insert
            Rows(lRow).EntireRow.Insert
            Rows(lRow).EntireRow.Insert
            Rows(lRow).EntireRow.Insert
        End If
    Next lRow
End Sub

1 个答案:

答案 0 :(得分:0)

我不知道如何删除它,但我能够使用以下内容完成所有工作:

Sub InsertRowAtChangeInValue()

    Sheets("dfw production schedule").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Current").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Range("A2").Select

Dim lRow As Long

For lRow = Cells(Cells.Rows.Count, "B").End(xlUp).Row To 2 Step -1
    If Cells(lRow, "B") <> Cells(lRow - 1, "B") Then
        Sheets("Template").Select
        Rows("2:7").Select
        Selection.Copy
           Sheets("Current").Select
           Rows(lRow).EntireRow.Insert
    End If
Next lRow

End Sub