Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datetime 获取每周星期一的日期_Datetime_Excel_Weekday_Vba - Fatal编程技术网

Datetime 获取每周星期一的日期

Datetime 获取每周星期一的日期,datetime,excel,weekday,vba,Datetime,Excel,Weekday,Vba,我想知道每周星期一的日期。我正在使用该日期打开一个文件夹,该文件夹每周一创建一次,并根据日期命名。我尝试使用weekday()函数。但我不知道如何进行。谢谢你的帮助!这是我尝试过的,它有效。但我只是想知道是否有更有效的方法 Sub test() Dim myday As Integer Dim mydate As Date mydate = Date myday = Weekday(Date, vbMonday) If myday = 1 Then mydate = Date ElseI

我想知道每周星期一的日期。我正在使用该日期打开一个文件夹,该文件夹每周一创建一次,并根据日期命名。我尝试使用weekday()函数。但我不知道如何进行。谢谢你的帮助!这是我尝试过的,它有效。但我只是想知道是否有更有效的方法

Sub test()

Dim myday As Integer
Dim mydate As Date
mydate = Date
myday = Weekday(Date, vbMonday)

If myday = 1 Then

mydate = Date

ElseIf myday = 2 Then
mydate = DateAdd("d", -1, Date)

ElseIf myday = 3 Then
mydate = DateAdd("d", -2, Date)

ElseIf myday = 4 Then
mydate = DateAdd("d", -3, Date)

ElseIf myday = 5 Then
mydate = DateAdd("d", -4, Date)

End If

End Sub

A1中输入:

=A1 + 7
2014年1月6日

A2中输入:

=A1 + 7

并在A1中向下复制,输入:

=A1 + 7
2014年1月6日

A2中输入:

=A1 + 7

并在A1中向下复制,输入:

=A1 + 7
2014年1月6日

A2中输入:

=A1 + 7

并在A1中向下复制,输入:

=A1 + 7
2014年1月6日

A2中输入:

=A1 + 7

如果DT是任何日期,则向下复制,如果DT是星期一,则要返回相同的日期,则使用VBA:

Function FirstMonday(DT As Date) As Date
    FirstMonday = DT - Weekday(DT, vbMonday) + 1
End Function
或者,在工作表上,日期为A1:

=A1+1-WEEKDAY(A1-1)

如果DT是任意日期,如果DT是星期一,则希望返回相同的日期,则使用VBA:

Function FirstMonday(DT As Date) As Date
    FirstMonday = DT - Weekday(DT, vbMonday) + 1
End Function
或者,在工作表上,日期为A1:

=A1+1-WEEKDAY(A1-1)

如果DT是任意日期,如果DT是星期一,则希望返回相同的日期,则使用VBA:

Function FirstMonday(DT As Date) As Date
    FirstMonday = DT - Weekday(DT, vbMonday) + 1
End Function
或者,在工作表上,日期为A1:

=A1+1-WEEKDAY(A1-1)

如果DT是任意日期,如果DT是星期一,则希望返回相同的日期,则使用VBA:

Function FirstMonday(DT As Date) As Date
    FirstMonday = DT - Weekday(DT, vbMonday) + 1
End Function
或者,在工作表上,日期为A1:

=A1+1-WEEKDAY(A1-1)

你为什么不告诉我们你已经尝试了什么呢?我已经添加了代码。有什么问题吗?你的代码看起来不错。你能描述一下你是如何尝试使用它的,你的具体问题/挑战是什么吗?没有错。我只是想知道是否有更好的方法可以做到这一点。为什么不向我们展示您迄今为止所做的尝试呢?我已经添加了代码。出现了什么问题?你的代码看起来不错。你能描述一下你是如何尝试使用它的,你的具体问题/挑战是什么吗?没有错。我只是想知道是否有更好的方法可以做到这一点。为什么不向我们展示您迄今为止所做的尝试呢?我已经添加了代码。出现了什么问题?你的代码看起来不错。你能描述一下你是如何尝试使用它的,你的具体问题/挑战是什么吗?没有错。我只是想知道是否有更好的方法可以做到这一点。为什么不向我们展示您迄今为止所做的尝试呢?我已经添加了代码。出现了什么问题?你的代码看起来不错。你能描述一下你是如何尝试使用它的,你的具体问题/挑战是什么吗?没有错。我只是想知道是否有更好的方法。