4

今日は 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
4

4 に答える 4

15
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, ...)

その日から 1 週間を引きます。

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

2013 年 2 月 18 日 (17 日ではなく月曜日) を返します。

于 2013-02-27T16:16:15.323 に答える
2

Weekday(Now()) と 2 (= 月曜日は平日) の差を計算し、7 を追加します。

于 2013-02-27T16:07:04.483 に答える
1

ダンの答えは、VBAでのニーズをカバーする必要があります

または、Excelワークシートの数式では、次のように実行できます。

    =TEXT(DateCell- (WEEKDAY(DateCell,2)-1),"dddd mmmm dd")

したがって、DateCellは、前の月曜日の日付を検索する日付を含む範囲です。

したがって、2012年8月4日をDateCellに入れると、その数式は4月2日月曜日に再実行されます。

(MrExcel.comとGoogle検索のクレジット!)HTHフィリップ

于 2013-02-27T16:38:09.453 に答える