vba怎样读取选定单元格内容_在Excel中利用VBA实现多表单元格数据的读取与赋值应用举例...

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

俺那网友遇到一个麻烦问题了,她不是计算机高手,仅是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-------------------

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页

打赏作者

weixin_39929465

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值