本例子,我们来解决这样的一个问题,下看下图!
本文为解决网名为“小妮子”的网友的问题而发。
先看好这个表的名称,是数据总表;
该表里面,第2列是日期字段列;下面,我们要实现的效果是,通过判断总表的第2列的值,按照月份,将对应的数据自动填充到各表。
比如说,月份为1月的总表里面的所有的数据,将自动填充到表名称为1的数据表里面,其它依此类推。
其它表的名称,分别以月份作为表的名称,如:1、2、3、4、5……12
下面再看看其他表的数据,是空的,如下图的1表!
其它表的数据,是通过VBA代码功能,自动填充并显示数据的,不需要手动复制粘贴。
要实现这样的功能,以月份为参照对象,将总表的对应的月份的数据填充到对应的表里面,那么,得使用VBA来实现。
首先,在总表里面,通过控件工具栏,拖出一个按钮,如下图!
之后双击按钮,进入按钮的代码编写模式,给按钮添加如下图的代码,即可完成。
为分保大家的学习,下面,贴出源代码:
Private Sub CommandButton1_Click()
Dim MyMonth '获取总表第2列的单元格的月份
Dim TableCount As Integer '工作表总数
TableCount = Worksheets.Count
Dim MyTableRows
For k = 2 To TableCount '除总表之外的其它工作表
MyTableRows = 2
For Current = 2 To 65536 '从第2行扫描总表的行数据
If (Worksheets(1).Cells(Current, 2).Value <> "" _
And Month(Worksheets(1).Cells(Current, 2).Value) = k - 1) Then
For m = 1 To 30
Worksheets(k).Cells(MyTableRows, m).Value = Worksheets(1).Cells(Current, m).Value
Next
MyTableRows = MyTableRows + 1
End If
Next
Next
End Sub