周视图日记:通过VBA跳转至指定日期
实现指定日期跳转周视图的VBA代码
直接用以下代码实现需求,添加按钮后绑定这个宏即可:
Sub GoToSpecificWeek() Dim targetDate As Variant Dim weekStartDate As Date Dim viewerCol As Long, viewerRow As Long StopCalc viewerRow = 2 ' 获取用户输入的目标日期 targetDate = InputBox("请输入目标日期(格式:YYYY/MM/DD 或 YYYY-MM-DD):", "跳转至指定周") ' 验证输入是否为有效日期 If Not IsDate(targetDate) Then MsgBox "输入的不是有效日期,请重新输入。", vbExclamation ResetCalc Exit Sub End If ' 计算目标日期所在周的周一(以周一为一周起始) weekStartDate = DateAdd("d", 1 - Weekday(targetDate, vbMonday), targetDate) ' 填充D2到J2的周一至周日日期 With Sheet8 For viewerCol = 4 To 10 .Cells(viewerRow, viewerCol).Value = weekStartDate + (viewerCol - 4) Next End With ResetCalc WeeklyProjectView_Load End Sub
关键逻辑说明
- 通过
InputBox获取用户输入,加入日期有效性校验,避免无效输入导致程序报错 - 利用
Weekday函数指定周一为一周的第一天,计算出目标日期所在周的起始周一 - 循环填充D列到J列(对应周一到周日):D列(第4列)为周一,每往后一列日期加1天,直到J列(第10列)的周日
- 沿用现有代码的
StopCalc、ResetCalc和WeeklyProjectView_Load,保证和上下周按钮的逻辑一致
内容的提问来源于stack exchange,提问作者Silver616
相关产品推荐
相关产品推荐

