gpt4 book ai didi

excel - 如何制作动态大小的数据表?

转载 作者:行者123 更新时间:2023-12-04 20:19:36 26 4
gpt4 key购买 nike

我正在使用 Excel 2010。

我有一个类似于此的“月度”数据表:

MonthBegin    InventoryExpenses  Overhead  TotalSales  TotalSalesIncome  TotalProfit
July-11 $1,500 $4,952 89 $7,139 $687
August-11 $2,200 $4,236 105 $8,312 $1,876
September-11 $1,100 $4,429 74 $6,691 $1,162

以下公式会自动传播到 [MonthBegin] 列中的每个单元格:
=DATE( 2011, 7 + ( ROW( ) - 2 ), 1 )

每个其他的 colmun 都有一个类似的列公式,可以自动从另一个源中提取适当的数据, 基于 [MonthBegin] 列中列出的月份 .

使用这种配置,我可以在表格的任何地方插入一个新行,下个月将自动以正确的顺序出现在底部(我觉得这很漂亮)。

但我需要把它带到下一个自动化水平,以取悦管理层。
我怎样才能使电子表格在一个月结束后自动为十月添加一行?

我一直在考虑为表格使用动态范围:
=OFFSET(A1,0,0,( ( YEAR( TODAY( ) ) - 2011 ) * 12 ) + ( MONTH( TODAY( ) ) - 7 ),6)

...但 Excel 不会接受这样的表格区域公式,我假设因为它不是静态的。
谁能向我解释如何使用我的数据表获得此功能?

最佳答案

你不能动态仅使用公式添加新行。

这是一个可以解决问题的 VBA 事件过程。您需要输入 Workbook module

Option Explicit

Private Sub Workbook_Open()
Dim lo As ListObject
Dim iTot As Long
Set lo = ListObjects("MyTable")
iTot = lo.Range.Rows.Count

'Add this statements before the Range with your worksheet name
'ThisWorkbook.Worksheets("Sheet1")
If Now() > Range("A" & iTot).Value Then
Range("A" & lo.Range.Rows.Count + 1).Formula = "=DATE( 2011, 7 + ( ROW( ) - 2 ), 1 )"
End If
End Sub

不要忘记更改表格的名称并添加工作表的名称(请参阅代码中的注释)

关于excel - 如何制作动态大小的数据表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8087736/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com