将最后一个logging复制并粘贴到第一个空白行的VBA

我是VBA新手,所以我的查询可能(希望)是一个简单的!

我有一个大型的客户端详细信息数据库,并且希望为工作表编写一个macros,它将查找最后一个非空行,复制行,并将“格式”和“validation”粘贴到第一个空行。 我希望macros能够自动运行(所以即使在添加更多的客户端时,第一个空白行也将始终具有与上述行相同的格式)。

到目前为止,我已经写了这个,当我按下Run Sub它是第一次,但是如果我在最后一个空行添加细节,我得到一个错误。 当我尝试debugging时,突出显示“复制最后一行:

Private Sub Worksheet_Change(ByVal Target As Range) 'Copy last row Range("C" & Rows.Count).End(x1Up).Rows.Select Selection.Copy 'Paste format and validation into next blank row Range("C" & Rows.Count).End(x1Up).Offset(1).Rows.Select Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteValidation, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False End Sub 

另外,我正在运行基于列“C”的代码,因为这是一个必填字段,所以对于任何logging都不会空白。

如果使用Range.FillDown方法 ,然后清除新行的单元格内容( Range.ClearContents方法 ),则应该留下单元格格式和数据validation。

 with Range("C" & Rows.Count).End(xlUp).resize(2, 1).entirerow .filldown with .offset(1, 0) .clearcontents end with end with