【问题标题】:Get custom previous business day in VBA在 VBA 中获取自定义上一个工作日
【发布时间】:2014-12-30 05:11:47
【问题描述】:

我想在我的 SSRS 报告中输入昨天的营业日期。在我的情况下,如果使用 weekday 函数和 today 作为参数并且它返回星期一的 2 我必须将今天的日期减少两天,否则今天必须减少一天。

我有以下代码,但在呈现报告时会引发错误。

=DateAdd(DateInterval.Day,CInt(IIf(Weekday(today)=2,-2,-1)),FORMAT(Cdate(today),"dd-MM-yyyy"))

我知道 Iif 函数返回一个对象类型,所以我尝试通过 CInt 将其转换为 int 没有成功。

你知道我怎样才能通过这些要求获得正确的日期吗?

本地报告处理过程中发生错误。的定义 报告“报告名称”无效。的值表达式 textrun '文本框的名称' 包含错误:[BC30519] 重载 解决失败,因为无法调用可访问的“DateAdd” 没有缩小转换。

【问题讨论】:

  • 你没有告诉我们错误是什么。
  • 尝试删除FORMAT,只留下今天。让我知道发生什么事。格式函数返回字符串而不是日期。 =DateAdd(DateInterval.Day,CInt(IIf(Weekday(today)=2,-2,-1)),today)
  • @RobertHarvey 我添加了渲染报告时抛出的错误消息
  • alejandrozuleta 你按照@MaciejLos 的建议做了吗?
  • @alejandrozuleta,谢谢 ;)

标签: vba date reporting-services dayofweek


【解决方案1】:

Format function 返回字符串,而不是日期,因此您需要从语句中删除 format 函数:

=DateAdd(DateInterval.Day,CInt(IIf(Weekday(today)=2,-2,-1)),today)

当然,你可以随意格式化结果:

=Format(your_statement_here, "format_you_want")

干杯,
马切耶

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-15
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多