转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件使用 >> 办公软件 >> 正文
在Excel中利用VBA实现多表单元格数据的读取与赋值应用举例         ★★★★

在Excel中利用VBA实现多表单元格数据的读取与赋值应用举例

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1433 更新时间:2009/6/9 2:19:01

  今受一网友之托,俺必忠人之事!

  俺那网友遇到一个麻烦问题了,她不是计算机高手,仅是Excel应用者,而她的问题实在难以使用普通办法来解决!

  俺也不是VBA学员,只得从网上临时学习VBA知识,以解其燃眉之急!

  现将心得体会与大家分享,虽然不是啥好方法,但是足以应付她的问题了,凡事只可问心无愧,本文绝无炫耀之意;希望对大家有所帮助!

  注:图片中显示的姓名,本例仅做举例学习之用,如果与您的姓名相同,还望海涵!!!

  问题是这样的……先过目一下Excel数据吧!

  表一:

        表二:

        表三:

  问题的需求是:将2表到8表的姓名追加填充到表1的姓名列中;将表2到表8的应发合计追加填充到表1的应发合计列中,并与姓名相对应;

  咋一看,数据表很少,每表数据也比较少,使用复制粘贴足以应付了!

  其实不然,如果有那么简单,这招俺也不用学习了!

  仔细分析表2和表3数据,姓名列突然跳到600多行了(其他数据表雷同),在这段行之中,可能存在数据,今后还可能增加不可意料的姓名,涉及到不可意料的数据,必然导致该操作具有很大的灵活性,灵活性大了,不使用一劳永逸的办法来对待,势必事倍功半!

  而事实上,每张表的数据量是比较大的,据她所说,每表数据将近1500条,如此一来,统统复制粘贴到表一中,那么,将来哪个表数据增加了,我们都很难从汇总的表一中使用肉眼判断出来,到头来也得重复很多的复制粘贴工作…

  为使用科学合理的办法来处理该问题,俺特别设计了如下的VBA代码,以助俺网友完成工作任务!

  代码如下:

 如何使用上述代码呢?

 打开你的Excel文件,按组合键Alt+F11,打开VB代码编辑窗口,如果打开的窗口未显示如上图的代码窗口,请在VB窗口中执行“视图”→“代码窗口”;

  在弹出的代码窗口中输入如上图的代码,按运行即可完成操作!

  注,为方便程序设计,俺特地在表2到表8的姓名列中的最后一个姓名下方单元格输入“姓名结束”,请注意了,如果没有,程序将无法运行,或者运行起来所得到的数据结果也是错误的!

  为方便各位的学习,提供原始代码:
-------------------
Private Function FillValue()
    k = 2    '表1数据填充从A2开始
    For i = 2 To 8                    '表循环,从表二循环到表8
       For j = 1 To 10000             '表内数据循环,步长最大值设置为10000,防止漏选数据,可修改为更大值
             '当遇到单元格的值为“姓名结束”时,退出循环
             If Worksheets(i).Cells(j, 1).Value = "姓名结束" Then
                Exit For
             End If
             '姓名不为空,单元格姓名值不为“姓名”的单元格进行值的赋值
             If Worksheets(i).Cells(j, 1).Value <> "" And Worksheets(i).Cells(j, 1).Value <> "姓名" Then
            
               '将表2到表8的A列数据根据条件赋值到表一的A列
                Worksheets(1).Cells(k, 1).Value = Worksheets(i).Cells(j, 1).Value
               
                '将表2到表8的F列数据根据条件赋值到表一的F列
                Worksheets(1).Cells(k, 2).Value = Worksheets(i).Cells(j, 6).Value '6代表F列
               
                '步长值,自增变量,让数据从表一的下一行逐渐填充
                k = k + 1
             End If
       Next
   Next
End Function
-------------------


[办公软件]如何实现Office工具栏、菜单以及菜单命令重命名  [办公软件]如何在Office文档(大)括号内输入多行文字
[办公软件]如何在office(PowerPoint,Word,Excel)中制作带圈的…  [办公软件]批量删除Office文档(word,excle,powerpoint)中的超…
[办公软件]Office(Word,Excel)密码破解软件(Office Password…  [办公软件]如何让低版本的Office也能顺利编辑2007文档
[办公软件]在PowerPoint中轻松插入Excel表格  [办公软件]Word、Excel和PowerPoint文件格式兼容包(简体中文…
[办公软件]设置office艺术字的形状  [办公软件]如何将Office菜单设置、工具设置、宏设置等应用到…
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · 办公软件  · 系统软件
    · 常用软件  · 聊天工具
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台