首页 > 解决方案 > 在 VBA 宏中使用 WORKDAY

问题描述

我正在尝试在 VBA 宏中使用 WORKDAY 函数,该函数将自动填充一列。我环顾四周并尝试了一些变化,结果好坏参半,没有一个完全符合我的需要。

我需要代码来确定单元格(I 列)是否为空,如果是,则根据单元格中的日期(H 列)确定上一个工作日。我到目前为止的代码是:

Dim rng As range

Set rng = range("I3", Cells(Rows.Count, "I").End(xlUp))

For Each cell In rng
'
    If cell.Value = "" Then
        cell.Value = "=WORKDAY(""H3"",-1)"
    End If
    Next
End Sub

谢谢您的帮助!

标签: excelvba

解决方案


为了将来参考,宏记录器非常擅长为您提供此类事情的参考代码。你可能想要这样的东西:

Dim rng As range

Set rng = range("I3", Cells(Rows.Count, "I").End(xlUp))

rng.cells(1,1).Formula = "=IF(H3="""","""",WORKDAY(H3,-1))"
rng.cells(1,1).AutoFill Destination:=Range("J2:J6"), Type:=xlFillDefault

这将与您将公式(在常规 Excel 中)向下拖动到 rng 中的所有单元格执行相同的操作


推荐阅读