以下是我在“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
我希望数据最近六个月才能看到。例如,如果是10月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
应隐藏其余列。如果10月13日没有数据,则当前月份视图应与9月13日相同。我有月份行填写到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