【问题标题】:Excel COUNTA in a different sheet using more than one word sheet nameExcel COUNTA 在不同的工作表中使用多个单词工作表名称
【发布时间】:2018-11-01 05:19:41
【问题描述】:

我有一个包含 4 个工作表的工作簿:

  1. 目录
  2. ABC
  3. DEF
  4. GH IJK

我想在目录中计算我在其他工作表中的项目数。所有项目都在 A 列中,所以我需要计算 A:A-1

Here is my worksheet

如您所见,我在 D 列中有我应该看到的项目(我手动输入了它们),在 C 列我尝试了一个仅适用于只有一个单词的工作表的公式。

我有一个名为Sheet_Name_From_Number()的用户定义函数,我输入了一个数字,比如说2,该函数返回第2张工作表的名称,在我们的示例中它将返回ABC

这是我的公式:

=COUNTA(INDIRECT(PERSONAL.XLSB!Sheet_Name_From_Number(A2)&"!A:A"))-1

Here is the formula in cell C2

我很困惑,因为我不知道如何从这些不止一个单词表中计算 A 列。任何帮助将不胜感激。

【问题讨论】:

  • 能否包含您的 UDF 函数?

标签: excel vba function excel-formula


【解决方案1】:

在工作表名称周围添加单引号:

=COUNTA(INDIRECT("'" & PERSONAL.XLSB!Sheet_Name_From_Number(A2) & "'!A:A"))-1

【讨论】:

  • 我很确定这个不起作用,因为语法错误。
  • @Pᴇʜ 该公式不尝试从 PERSONAL.XLSB 中提取范围。它从 PERSONAL.XLSB 调用 UDF。这就是不需要括号的原因。
  • @jblood94 好吧,当然这完全有道理,没看到。真丢人。谢谢你的澄清。
【解决方案2】:

其他答案都很好,但“正确”的做法是在 UDF 中包含单引号。

最后几行大概是这样的

    ...
    Sheet_Name_From_Number = something
End Function

替换为

    ...
    Sheet_Name_From_Number = "'" & something & "'"
End Function

然后你可以保持你的公式不变。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 2017-06-20
    • 2019-01-22
    • 1970-01-01
    相关资源
    最近更新 更多