我已经创建了一个表格(客户投诉)。我想创建一个宏,允许用户每次有新投诉时添加新行。该行应复制上一行的格式,公式和数据验证选项,但不能复制任何硬编码项。我已经创建了这段代码,但是它复制的是整个行,而不是公式,格式和数据验证。
有什么建议吗?
Sub Add_new_item()
' Go to last cell
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select
' Copy formula from cell above
Rows(Selection.Row - 1).Copy
Rows(Selection.Row).Insert Shift:=xlDown
End Sub
谢谢。
答案 0 :(得分:0)
您可以在插入新行后添加.ClearContents
:
Sub Add_new_item()
' Go to last cell
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select
' Copy formula from cell above
Rows(Selection.Row - 1).Copy
Rows(Selection.Row).Insert Shift:=xlDown
Rows(Selection.Row).ClearContents
Application.CutCopyMode = False
End Sub
此外,最好以Application.CutCopyMode = False
结尾以清除剪贴板。
答案 1 :(得分:0)
更简单的非VBA解决方案是使用表格。如果您要做的只是保留格式和公式,那么Table会为您做所有事情,而无需任何代码。只要您的数据具有唯一的列标题,就应该行得通。选择要用作表的数据范围(包括列标题),然后单击ctrl + t。将显示一个对话框,要求您选择要使用的范围(将已经有选择项)和“我的表格有标题”复选框,以指示您是否要使用列标题(选中此框)。点击“确定”。您现在有了一个表。只需单击第一个空白单元格并开始输入,就会添加新行以及以前行具有的所有格式和公式。