【发布时间】:2009-12-29 06:02:56
【问题描述】:
我正在分析基于 x 个连续工作日的数据,M-F(以及后来跳过选定的假期)。我的计划是从 MM-DD-YYYY 确定星期几。
如何在 VBA 中做到这一点?
我发现了这种使用 .NET 的简单方法,但是如何从 Office 2007 VBA 调用,我需要添加什么参考?
DateTime.Parse("2009-10-02").ToString("D", CultureInfo.CreateSpecificCulture("en") .NET Day of week from YYYY-MM-DD
为了完整性和帮助他人,我的代码是这样结束的: 我如何才能在未来 x 天里清晰地概括这一点?
myDateStd = myDate
If Right(Left(myDate, 2), 1) = "/" Then myDateStd = "0" & myDate 'IF M/*/YYYY
If Len(myDateStd) = 9 Then myDateStd = Left(myDateStd, 3) & "0" & Right(myDateStd, 6) ' If MM/D/YYYY' fix
dayNumber = Weekday(DateSerial(Right(myDateStd, 4), Left(myDateStd, 2), Mid(myDateStd, 4, 2)), vbMonday)
Select Case dayNumber
Case 1 To 3
workingDaysDelta = 3
Case 4 To 5 'i.e. its a Friday (or thur) so need to count Fri,S,S,M,T
workingDaysDelta = 5
Case 6 To 7 ' its sat/sun
workingDaysDelta = 4
Case Else
MsgBox "ERROR date seams invalid, Date = " & myDateStd
End Select
'Loop with If testing conditions including:
CDate(wbAn.Cells(j, "E")) < (CDate(myDate) + dayNumber)
【问题讨论】:
-
你考虑过 SQL 和 VBA 吗?
-
@Remou:这与 SQL 或数据库有什么关系?问题中都没有提到
-
抱歉,我还以为提到了 Access。但是,根据数据,考虑按星期几进行分析仍然可能有用。