正如您在屏幕截图中看到的那样,日历仅显示1月30日,而缺少第31天。当我尝试通过添加新列(AG)手动添加这一天时,它可以工作。但是当我滚动到下个月即2月时,AG列变为空白!当我再次滚动回到1月份的30天!
答案 0 :(得分:0)
因为您隐藏了Columns("C:NI")
并且只取消了 C列中的30列列AF 。
Range("B3").Value
等于 1 ,Range("B3").Value * 31 - 29
等于 2 。
同样,Range("B3").Value * 31 + 1
等于 32 。因此,您只取消隐藏 30 列(32-2)!
只需将您的VBA代码Range("B3").Value * 31 - 29
更改为Range("B3").Value * 31 -28
,将Range("B3").Value * 31 + 1
更改为Range("B3").Value * 31 + 2
:
Sub showcalendar()
LeaveTracker.Columns("C:NJ").Hidden = True
LeaveTracker.Range(Columns(Range("B3").Value * 31 - 28), Columns(Range("B3").Value * 31 + 2)).Hidden = False
End Sub
还有一件事,在excel公式中将所有Column()-1
更改为Column()-2
。 Here是您修复过的工作簿。检查并告诉我你的任何想法。