【问题标题】:VBA: How to create a new row in a table which copies format and formulasVBA:如何在复制格式和公式的表中创建新行
【发布时间】:2018-09-11 22:58:00
【问题描述】:

我创建了一个表格(客户投诉)。我想创建一个宏,允许用户在每次有新投诉时添加一个新行。该行应复制上一行的格式、公式和数据验证选项,但不能复制任何硬编码项。我已经创建了这段代码,但它复制了整行,而不是仅复制公式、格式和数据验证。

有什么建议吗?

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

提前致谢。

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    您可以在插入新行后添加.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 结尾以清除剪贴板。

    【讨论】:

      【解决方案2】:

      更简单的非 VBA 解决方案是使用表格。如果您所做的只是保留格式和公式,那么表格将为您完成所有工作,而无需任何代码。只要您的数据具有唯一的列标题,就可以开始使用。选择您想要作为表格的数据范围(包括列标题),然后单击 ctrl+t。将显示一个对话框,要求您选择要使用的范围(您的选择已经到位)和一个“我的表格有标题”复选框以指示您是否要使用列标题(选中此框)。单击“确定”。你现在有一张桌子。只需单击第一个空单元格并开始输入,即可添加新行,其中包含之前行所具有的所有格式和公式。

      Table

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多