You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

周视图日记:通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 11:18:20