【发布时间】:2015-02-13 00:24:12
【问题描述】:
我有一个 VBA 过程,它从数据库中提取一些数据,将其转储到工作表中,添加标题行并将所有数据转换为表。那一点效果很好。返回的数据具有不确定的行数。我需要做的是在最后添加一个摘要行。我希望通过使用小计函数来解释未知的表长度:例如,SUBTOTAL(109,[5 year total])。
问题是我得到了一个
Run-time error '1004': Application-defined or object-defined error
此代码有效
Range(upperleft).End(xlDown).Offset(1, 6).Value = "Test cash 5 year total"
这段代码在哪里引发错误
Range(upperleft).End(xlDown).Offset(1, 6).Formula = "=SUBTOTAL(109,[cash: 5 year total])"
upperleft 变量是表格的左上角单元格。这似乎与我用于公式/值的字符串有关,因为如果我尝试将公式设置为这样的值
Range(upperleft).End(xlDown).Offset(1, 6).Value= "=SUBTOTAL(109,[cash: 5 year total])"
我遇到同样的错误
【问题讨论】:
-
您似乎缺少公式中的表名。
-
谢谢。让我调查一下。我使用宏记录器作为小计的语法,所以它可能做出了一些错误的假设。
-
如果您拥有的公式位于作为表格一部分的总计行中,则它应该可以工作,但如果不是,您需要包含表格名称:例如
=SUBTOTAL(109,Table1[cash: 5 year total])。 -
添加表引用是票。如果您将评论作为建议的答案发布,我会接受。我要你得到信用。非常感谢你,罗里。我能够在小计上找到的信息没有调出表引用,并且默认情况下,excel 在记录器中不会这样做。