首页 文章

为所有工作表运行宏以从上面的单元格中插入行和复制公式

提问于
浏览
1

我搜索一个宏,如果插入了一个新行,那么该新行的列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 中工作正常 . 这是我的问题:

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

= Sheet1!A3 = Sheet1!B3

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

1 回答

  • 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
    

相关问题