根据当前日期优化自动填充日期

时间:2012-10-25 14:24:33

标签: vba excel-vba excel

我需要使用日期自动填充特定列。如果日期发生在星期六到星期二之间,我需要在上周五自动填写日期列。如果日期发生在星期三和星期五之间,我需要在即将到来的星期五进行自动填充。

例如:如果我在10月23日星期二运行电子表格,我需要自动填写日期为10月19日星期五。如果我在10月24日星期三运行电子表格,我需要自动填写日期为10月26日星期五。

这是我到目前为止的公式,所以我需要在保存电子表格或单击自定义按钮时通过宏调用此公式。非常感谢任何帮助。

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

1 个答案:

答案 0 :(得分: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
相关问题