Excel 使用宏复制公式和格式化

Excel 使用宏复制公式和格式化,excel,Excel,我正在尝试在下一行中预先填充公式和格式,其中显示数据。 我试过以下方法 Sub CopyMacro() ActiveSheet.Range("B").End(xlUp).EntireRow.Copy ActiveSheet.Range("B").End(xlUp).Offset(1, 0).EntireRow.PasteSpecial Paste:=xlPasteFormats ActiveSheet.Range(Range("F").End(xlUp), "G" &am

我正在尝试在下一行中预先填充公式和格式,其中显示数据。 我试过以下方法

Sub CopyMacro()
    ActiveSheet.Range("B").End(xlUp).EntireRow.Copy
    ActiveSheet.Range("B").End(xlUp).Offset(1, 0).EntireRow.PasteSpecial Paste:=xlPasteFormats
    ActiveSheet.Range(Range("F").End(xlUp), "G" & Range("F").End(xlUp).Row).Copy
    ActiveSheet.Range("F").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteFormulas
    Application.CutCopyMode = False
End Sub
试试这个:

Sub CopyMacro()
    With ThisWorkbook.Worksheets("Sheet2").Range("B" & Rows.Count).End(xlUp)
        .EntireRow.Copy
        .Offset(1, 0).EntireRow.PasteSpecial Paste:=xlPasteFormats
        .Offset(0, 4).Resize(, 2).AutoFill Destination:=.Offset(0, 4).Resize(2, 2)
    End With
End Sub

谢谢,这很有效!我有一个问题,如果我想让它工作表(说Sheet2)比我需要改变什么具体。我想最好把它具体化。请让我知道你的想法。
我想最好让它具体化
-绝对正确!看到我更新的答案:)谢谢,太完美了!请您解释一下偏移量(1,0)和偏移量(0,4)部分。当然,1)
范围(“B”和Rows.Count)。End(xlUp)
为您提供列
B
中的最后一个非空单元格,例如
B12
。2)
Offset(1,0)
表示从
B12
获取单元格下一行,即
B13
。3)
Offset(0,4)
为您提供从
B12
到右侧的单元格4列,即
F12
4),最后是
。调整(,2)
“拉伸”
F12
到两列范围,即
F12:G12
有一个快速问题要问您。如果我的工作表2是一个表,则此代码不起作用。你能告诉我为什么吗?