如果当前date是假期,如何获取之前的date

VB新手到这里,我陷入了这种情况。

我有一个列有date的列。

A 1/31/2016 1/31/2016 1/31/2016 1/31/2016 

现在在B栏中,如果A栏中提到的date是周末,那么我希望得到上一个工作日,如果A栏中提到的date是一个工作日,那么我们就可以得到相同的date。 所以输出结果就像

 AB 1/31/2016 1/29/2016 1/31/2016 1/29/2016 1/31/2016 1/29/2016 1/31/2016 1/29/2016 

我目前正在使用这个代码。 但是我得到错误。 请让我知道如何到达所需的输出。

 Sub Work_day() Dim wf As WorksheetFunction Set wf = Application.WorksheetFunction For i = 2 To Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row Sheets("Sheet1").Cells(i, "B").Value = wf.WorkDay(Range("A:A"), -1) Next i End Sub 

出现的错误是“无法获取工作表函数类的workday属性”

左边将只能捕获一个值,而右边的expression式则试图给出A:A的整个范围的结果

代码中的小修改给出Datevalue整数值中的函数返回的前一个/当前工作日:
Sheets("Sheet1").Cells(i, "B").Value = wf.WorkDay(Range("A" & i), -1)

这进一步可以被转换成一个date格式的值,在Excel单元格中使用下面的公式。

=TEXT(MONTH(B2)&"/"&DAY(B2)&"/"&YEAR(B2),"mm/dd/yyyy")
范围B:B是VB执行的结果。