vba - 上周一的日期 Excel

标签 vba excel excel-formula excel-2010

今天是 2013 年 2 月 27 日,星期三。 我需要一个公式,该公式将返回上周一的日期。即 (02/17/2013)

我需要这样才能在发送电子邮件的 vba 代码中使用文件名或电子邮件主题。

With oMail
     'Uncomment the line below to hard code a recipient
     .To = "myemail@email.com"
     'Uncomment the line below to hard code a subject
     .Subject = "Current Report"
     .Attachments.Add WB.FullName
    .Display
End With

最佳答案

Public Function LastMonday(pdat As Date) As Date
    LastMonday = DateAdd("ww", -1, pdat - (Weekday(pdat, vbMonday) - 1))
End Function

Weekday(yourdate, vbMonday) 返回 1 表示星期一,2 表示星期二,依此类推

pdat - (Weekday(pdat, vbMonday) - 1)

通过从过去的日期中减去 Weekday()-1 天数,可以得到最近的星期一。

DateAdd("ww", -1, ...)

从该日期减去一周。

LastMonday(cdate("2/27/13"))

返回 2013 年 2 月 18 日(这是星期一,而不是 17 日)

关于vba - 上周一的日期 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15116513/

相关文章:

database - 用于登录用户名和密码的 DLookup 代码

excel - 动态更改下拉列表中一个月的天数

vba - 如何在excel中停止自动重新计算

vba - 返回单独工作簿中特定值的单元格位置

excel - VBA 自动筛选条件 : apply if ALL cells in current range/row is blank

vba - 从组合框(表单控件)excel VBA 中检索选定的选项

vba - 如何使用 VBA 将 Word 文档作为电子邮件正文发送

excel - 如何编写VBA代码来隐藏Excel中的所有列标题和行标题?

vba - 将单元格内的任何单词与单元格范围内的任何单词相匹配

vba - 从 VBA 运行第 3 方 Excel 插件