【发布时间】:2019-09-30 12:14:05
【问题描述】:
这是我目前所拥有的。日期在 sheet1 上是私有的,但如果它还不是工作日,则需要在 sheet5 上转换为工作日。提前感谢您的帮助!
Sub Weekend_remover()
' determines if date is a weekend and changes it to the friday beforehand.
If (Weekday(Sheet1!B3, vbMonday) <= 5) Then
Sheet5!D13 = Sheet1!B3
ElseIf (Weekday(Sheet5!D12, vbMonday) = 6) Then
Sheet5!D13 = (Sheet1!B3 - 1)
Else
If (Weekday(Sheet5!D12, vbMonday) = 7) Then
Sheet5!D13 = (Sheet1!B3 - 2)
End If
End Sub
【问题讨论】:
-
你的代码有什么问题?
-
代码无法工作,因为缺少
End If。或者因为最后一个Else … If应该是ElseIf。请注意,空格和换行符在 VBA 中非常重要。 -
另外
Weekday(Sheet1!B3, vbMonday)不是有效的语法,应该是Weekday(ThisWorkbook.Worksheets("Sheet1").Range("B3"), vbMonday)