Dzwebs.Net

撰写电脑技术杂文十余年

Excel根据年月,将总表数据自动显示到各月份表的VBA代码

Admin | 2009-4-30 14:21:37 | 被阅次数 | 14276

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  本例子,我们来解决这样的一个问题,下看下图!

  本文为解决网名为“小妮子”的网友的问题而发。

  先看好这个表的名称,是数据总表;

  该表里面,第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


该杂文来自: Excel杂文

上一篇:给VBA代码设置密码的简单操作

下一篇:excel电子表格在操作上存在的各种缺陷列表

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计