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

营地预订系统日历着色BUG:新多日预订未检测后续占用日期

营地预订日历冲突检测BUG修复

原有代码的核心问题是仅检查预订起始日期的单元格颜色,无法识别新预订日期范围与已占用日期(黄色单元格)的重叠冲突。以下是修复后的完整代码,重点优化了冲突检测逻辑:

Sheets("Bookings").Select
rngG.Select      '选中该行
Range("B" & (ActiveCell.Row)).Select        '姓名列
Selection.Copy

Sheets("Calendar").Select    '定位到日历中预订周期的首日单元格
Application.Goto reference:=Range("calref").value

' 检查预订日期范围内是否存在已占用的黄色单元格
Dim nd As Integer
Dim checkRange As Range
Dim cell As Range
nd = Range("numDays").value
Set checkRange = ActiveCell.Resize(1, nd) ' 获取整个预订日期范围的单元格区域

' 遍历区域内所有单元格,检测是否有黄色已占用日期
For Each cell In checkRange
    If cell.Interior.Color = vbYellow Then
        MsgBox "Pitch Occupied, choose another"
        UserForm2.Show
        Exit Sub
    End If
Next cell

' 为新预订的日期着色(原功能保留)
Dim cellToHighlight As Range
Set cellToHighlight = ActiveCell
With cellToHighlight
    .Offset(0, 0).Resize(1, nd).Interior.Color = vbYellow
End With

' 粘贴姓氏(原功能保留)

关键修改说明

  • 新增checkRange变量,获取整个预订日期对应的单元格区域,而非仅起始单元格
  • 通过For Each循环遍历区域内每一个单元格,逐一检查颜色是否为vbYellow
  • 只要发现任意一个已占用的黄色单元格,立即触发提示并终止流程,彻底避免重叠预订

内容的提问来源于stack exchange,提问作者nickC

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 08:42:45