3

特定の列に日付を自動入力する必要があります。日付が土曜日から火曜日の間に発生する場合、日付列に前の金曜日を自動入力する必要があります。日付が水曜日から金曜日の間にある場合は、自動入力のために次の金曜日の日付を入力する必要があります。

例: 10/23 火曜日にスプレッドシートを実行する場合、自動入力日を 10/19 金曜日にする必要があります。10/24 水曜日にスプレッドシートを実行する場合、自動入力日を 10/26 金曜日にする必要があります。

これがこれまでの数式です。スプレッドシートを保存するとき、またはカスタム ボタンをクリックするときに、マクロを介してこの数式を呼び出す必要があります。どんな援助でも大歓迎です。

=IF(ISBLANK($A2),"",IF(WEEKDAY(TODAY())<4,(TODAY()+(-1-WEEKDAY(TODAY()))),(TODAY()+(6-WEEKDAY(TODAY())))))
4

1 に答える 1

0

必要なものには VBA を使用することをお勧めします。このようなものは、ThisWorkbook モジュールに入り、ワークブックを保存する前に実行されます。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    'Check if A2 is blank
    If Cells(2, 1) = "" Then Exit Sub
    'Find the date and use it
    Dim x As Long
    Dim dateToUse As Date
    x = Weekday(Date, vbSaturday)
    If x <= 4 Then
        dateToUse = Date - x
    Else
        dateToUse = Date + (7 - x)
    End If
    'Change Cells(1, 1) to the actual target you want to have the date, 
    'which could be determined based upon the contents of your workbook/sheet.
    Cells(1, 1) = dateToUse
End Sub
于 2012-10-25T14:35:17.603 に答える