【问题标题】:Using subtotal formula in VBA for Excel在 VBA for Excel 中使用小计公式
【发布时间】: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 在记录器中不会这样做。

标签: excel vba


【解决方案1】:

您拥有的公式只要在作为表格一部分的总计行中就应该有效,但如果不是,您需要包含表格名称:

=SUBTOTAL(109,Table1[cash: 5 year total])

例如

【讨论】:

  • 这是一个很好的收获。我相信宏记录器会提供我需要的详细信息。它没。我不是专门的 VBA 开发人员。此外,这很棒,因为我在网上找到的所有文档都没有提到在小计公式中引用表名,当然,错误消息也没有帮助。谢谢罗里!
猜你喜欢
  • 2017-06-16
  • 1970-01-01
  • 1970-01-01
  • 2015-07-23
  • 2017-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多