【问题标题】:excel function ARBEITSTAG not working in English version of Excelexcel函数ARBEITSTAG在英文版Excel中不起作用
【发布时间】:2018-01-09 08:23:27
【问题描述】:

我有一台装有德国操作系统和 MS Excel 的电脑。在这台电脑上,我创建了 Excel 工作簿,其中包含不同的 Excel 工作表功能。

然后我有第二台电脑,安装了英文操作系统和 MS Excel。当我在具有英文操作系统的 PC 上打开此 Excel 工作簿时,所有工作表函数都已正确翻译成英文版本,但函数 ARBEITSTAG 看起来像 #NAME?

我在这里遗漏了什么吗?如何让 Excel 也能使用这个功能的英文版?


注意事项:

  • 源 Excel 工作簿不包含 VBA 代码。
  • 此工作簿中没有定义像 ARBEITSTAG 这样的名称。
  • 所以最后我不得不用WORKDAY手动替换文本ARBEITSTAG
  • 使用带有一张工作表的示例工作簿,公式 ARBEITSTAG 已正确翻译成英文版 WORKDAY,所以一定有东西,但我不知道是什么。

【问题讨论】:

  • 试试 WORKDAY(...)
  • ARBEITSTAG 函数做了什么
  • @Jeeped 是的,我可以自己覆盖它,WORKDAY 会完成这项工作,但工作簿很大,想知道 Excel 是否有可能像其他函数一样做到这一点.
  • @ashleedawg 表示工作日。
  • @NineBerry 看到编辑过的问题,我已经添加了图片,好吗?

标签: windows vba excel excel-formula


【解决方案1】:

可能不是您正在等待的解决方案,但对于英文版来说是一个非常有效的解决方案:

Public Function ARBEITSTAG(startDate As Date, days As Long, _
                        Optional holiday As Long = 0) As Date

    ARBEITSTAG = WorksheetFunction.WorkDay(startDate, days, holiday)

End Function

【讨论】:

  • 打败你 :-)
  • @ashleedawg - 但你已经提出了一些关于 Null 的内容,但它不起作用:)
  • ...在您发帖前 几秒钟 将其编辑出来... :-)
  • @ashleedawg - 我不会赌秒。但是,我看不到编辑的时间戳。 :)
  • ...有趣,我想我在发布后编辑得如此之快,以至于它在发布时计算了它。所以,看起来像 官方 17 秒领先我 :-)
【解决方案2】:

也许您可以添加一个自定义函数,以通过其德语名称调用工作表函数,例如:

Public Function Arbeitstag(start_date As Date, days As Variant)
    Arbeitstag = Application.WorksheetFunction.WorkDay(start_date, days)
End Function

【讨论】:

    猜你喜欢
    • 2014-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多