Excel Table, 使用 VBA 更改列中的数据

Excel Table, using VBA to change data in a column

我有一个 Table,其中有一列是我添加的,它根据公式检查该行的日期。 该公式的结果为 TRUE 或 FALSE,随后的 Pivot Table 对 TRUE 行中的值求和。我介绍它是为了获得所谓的滚动总收入。 有两个公式,我想使用 VBA 从一个公式交换到另一个公式。 公式为:

=IF([@Date] = "", "", AND([@Date]>=EOMONTH(TODAY(),-13)+1,[@Date]<EOMONTH(TODAY(),-1)))

为滚动数据。

=IF(AND([@Date] >=G1,[@Date] <=H1),"TRUE","FALSE")

对于 G1 和 H1 之间的收入总和,财政年度开始和结束日期。

我试过的VBA如下:

Set lo = Sheet2.ListObjects(1)   'Sheet2 is the Income sheet see Project list
lo.Parent.Activate               'Activate sheet that Table is on
Set lColName = lo.ListColumns(9)
lColName.DataBodyRange.Cells(1).Formula = [=IF(AND([@Date] >=G1,[@Date] <=H1),"TRUE","FALSE")]

运行 上述错误并在该列的第一个单元格中给出#VALUE,并且不会波及该列的其余部分。

我做错了什么?

尝试

lColName.DataBodyRange.Formula = "=IF(AND([@Date] >=$G,[@Date] <=$H),""TRUE"",""FALSE"")"

谢谢,这些更改已经解决了。

我正在苦苦挣扎的另一个改进。 IF 测试语句正在针对我为便于调试而设置的单元格 $G1 和 $H1 测试日期。但是,我在工作簿中有另一个工作表,其中存储了我在各种工作表中使用的所有 references/static 数据,并将这些日期放在那里。在此模块中,在 IF 语句之前,我针对两个变量设置了这些日期。

开始日期 = Range("I2").Value enddate = Range("J2").Value

我现在想在 IF 语句中使用它们,但无法获得正确的语法! 这只是错误:

"=IF(AND([@Date] >= startdate,[@Date] <= enddate),""TRUE"",""FALSE"")"

应该怎么写呢? 谢谢