【问题标题】:Run a macro for all sheets to insert a row and copy formula from above cells为所有工作表运行宏以插入行并从上面的单元格复制公式
【发布时间】:2015-06-03 05:55:44
【问题描述】:

我搜索一个宏,如果插入一个新行,那么该新行的 A 列 单元格将在处理自动编号的单元格公式上方填充。公式为:

=IF(TRIM(B3)"",COUNTA($B$3:B3)&".","")

B 列 中,我有我的组织的 300 名员工的姓名,用一行间隔来区分状态。如果有新员工加入我们的组织,我需要在他/她的州内插入一行。 我使用下面的宏来处理它。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = ActiveCell.Column Then
        refRow = Target.Row - 1
        thisRow = Target.Row
        Range("A" & refRow & ":A" & refRow).Copy Range("A" & thisRow & ":A" & thisRow)
    End If
End Sub

它在 Sheet1 中运行良好。这是我的问题:

Sheet2Sheet3A 列和 B 列中,我用 Sheet 1 的 链接行 A 列和 B 列,使用简单:

=Sheet1!A3
=Sheet1!B3

所有工作表的这两列都是相同的,从所有工作表的第 3 行开始。 我想要一个事件,如果我在 Sheet1 中插入一个新行,那么它将在 Sheet2Sheet3 中插入一个相同位置的新行。然后从 Sheet2Sheet3 中的上述单元格中复制相关公式。 我有 Sheet1 的上述宏,但不能应用于所有表格。 我试图将该宏复制到 Sheet2Sheet3 中,但它不起作用。 我怎样才能让它工作?

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    这应该可以解决问题...显然我假设您的工作表名称分别是 Sheet1 和 Sheet2。如果没有,您将知道在哪里更改。

    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Column = ActiveCell.Column Then
            refRow = Target.Row - 1
            thisRow = Target.Row
            Range("A" & refRow & ":A" & refRow).Copy Range("A" & thisRow & ":A" & thisRow)
            Sheets("Sheet1").Range("A" & refRow & ":B" & refRow).Copy Sheets("Sheet1").Range("A" & thisRow & ":B" & thisRow)
            Sheets("Sheet2").Range("A" & refRow & ":B" & refRow).Copy Sheets("Sheet2").Range("A" & thisRow & ":B" & thisRow)
        End If
    End Sub
    

    【讨论】:

      猜你喜欢
      • 2016-09-18
      • 2017-12-15
      • 1970-01-01
      • 1970-01-01
      • 2019-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多