以下是我在工作表“Sheet1”中的数据
ID Jan-13 Feb-13 Mar-13 Apr-13 Apr-13 May-13 Jun-13 Jul-13 Aug-13 Sep-13 A1 12 16 26 46 10 20 50 40 25 15 A2 24 18 24 26 20 20 20 20 25 25 A3 48 15 30 18 30 10 10 10 20 45 A4 16 51 20 10 40 50 20 30 30 15
我希望数据只能在最近六个月内可见。例如,如果当前月份为 Oct-13,
ID Apr-13 May-13 Jun-13 Jul-13 Aug-13 Sep-13 A1 10 20 50 40 25 15 A2 20 20 20 20 25 25 A3 30 10 10 10 20 45 A4 40 50 20 30 30 15
如果当前月份是 11 月 13 日,则 10 月 13 日的值将可见。
ID May-13 Jun-13 Jul-13 Aug-13 Sep-13 Oct-13 A1 20 50 40 25 15 10 A2 20 20 20 25 25 25 A3 10 10 10 20 45 35 A4 50 20 30 30 15 30
其余列应隐藏。如果 13 年 10 月没有数据,则当前月份视图应与 13 年 9 月相同。我的月份行填充到 2014 年,每一行都有基于另一张表“Sheet2”的公式。如果我在“Sheet2”中添加 oct-13 的数据,则“Sheet1”中 Oct-13 列的数据将可见,否则将为空白。如果有人帮助我如何使用 excel VBA 使这个动态化,那将会很有帮助。
假设我的标题在第 2 行,并且我正在使用该today()
函数获取当前日期。我正在用同一列中提到的月份检查当前日期。today() 函数将在该列中有值时移动到下一个单元格。否则它保留在同一列中。这是我对上述任务的解决方法。我认为这需要简化和工作。
Sub Workbook_Open()
Cells(A1).Select
Selection.End(xlToRight).Select
r = Selection.Row
c = Selection.Column
If Month(Cells(r, c)) = Month(Cells(r + 1, c)) + 1 Then
ActiveCell.Offset(0, -7).Select
Range(Selection, Cells(ActiveCell.Row, 2)).Select
Selection.Hide
Cells(r, c).Select
ActiveCell.Offset(1, 1).Select
Range(Selection, Cells(ActiveCell.Row, Selection.End(xlToRight).Select)).Select
Selection.Hide
Else
Cells(r, c).Content.Cut
ActiveCell.Offset(0, 1).Select
Selection.Paste
End If
End Sub