excel 如何在添加新列时自动填充公式

sq1bmfud  于 2022-11-18  发布在  其他
关注(0)|答案(3)|浏览(476)

我不明白如何将单元格中的公式自动填充到左侧添加的新列中。让我们举个例子:[Example](https://i.stack.imgur.com/WcV5c.png)我在单元格“B2”上有一个日期“B1+180”,当我在“B2”的左侧添加新列时,新的“B2”不包含公式。在左侧添加新列时,它如何自动填充公式?

  • 谢谢-谢谢
    我希望在“B2”左侧添加新列时,新的B2将自动填充公式“B1+180”。
nbysray5

nbysray51#

您可以复制并插入现有的栏吗?只要您的参照是静态的(例如$A$1,而不是A1),就会复制/贴上公式。如果您需要将公式下拉到列上,您可以使用$A1,但是如果栏参照是动态的,您最后会寻找错误的储存格或产生#REF错误。
通过将区域格式化为表格,可以更容易地使用插入的行来实现这一点,但插入应如上所述。

ncecgwcz

ncecgwcz2#

我不认为Excel自动填充在创建新列时会自动工作。您最好在编写公式时使用对B1的绝对或半绝对引用($B1、B$1或$B$1),创建新列,然后使用“黑色加号”通过自动填充扩展公式。另一种方法是将整个B列复制粘贴到其自身的左侧:如果你公式写得很好,它也会说话。

icomxhvb

icomxhvb3#

正如在aclayden的回答中所评论的,您可以使用VBA来实现这一点
使用工作表更改事件,我们可以监视单元格的任何更改,如果有更改,则添加公式。
右键单击“工作表”选项卡,然后单击“查看代码”。
在“VBA项目”框中,您应该看到要监视的工作表,如果它不是正确的工作表,请双击所需工作表的名称。
现在应该有一个区域,可以在其中粘贴以下代码:

Private Sub Worksheet_Change(ByVal Target As Range)
 
Dim ws As Worksheet
Set ws = Worksheets("Sheet1") ' set the target worksheet name here

If Not Application.Intersect(ws.Range("B1"), Range(Target.Address)) Is Nothing Then  ' set the cell to be watched
        
    ws.Range("B2").FormulaR1C1 = "=R[-1]C+180" ' set the cell where you want the formula - The formula will need changing if you want to refrence another cell.

End If

End Sub

确保更改代码中的工作表名称和单元格引用以匹配您的重新配置,如果更改单元格引用,则需要更改公式。
您现在可以返回工作表并添加新列,此时应自动添加公式。

相关问题