暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

VBA实战技巧29:从一个工作表复制数据到另一个工作表

完美Excel 2021-07-26
2454

学习Excel技术,关注微信公众号:

excelperfect

今天演示一个简单的例子,也是经常看到网友问的问题,将一个工作表中的数据复制到另一个工作表。

 

如下图1所示,有3个工作表,需要将工作表“新数据#1”和“新数据#2”中的数据复制到工作表“汇总”中。其中,在“汇总”工作表中已经有部分数据。

1

 

工作表“新数据#1”中的数据如下图2所示。

2

 

工作表“新数据#2”中的数据如下图3所示。

3

 

Alt+F11组合键,打开VBE,插入一个标准模块,输入如下代码:

Sub Copy_Data()

   Sheets("新数据#1").Select

   Range("A4").Select

   Range(Selection, Selection.End(xlDown)).Select

   Range(Selection, Selection.End(xlToRight)).Select

   Selection.Copy

   Sheets("汇总").Select

   Range("A3").Select

   Selection.End(xlDown).Select

   ActiveCell.Offset(1, 0).Range("A1").Select

   ActiveSheet.Paste

   Sheets("新数据#2").Select

   Range("A4").Select

   Range(Selection, Selection.End(xlDown)).Select

   Range(Selection, Selection.End(xlToRight)).Select

   Application.CutCopyMode = False

   Selection.Copy

   Sheets("汇总").Select

   Range("A3").Select

   Selection.End(xlDown).Select

   ActiveCell.Offset(1, 0).Range("A1").Select

   ActiveSheet.Paste

   Range("A3").Select

End Sub

 

代码中:

Range(Selection, Selection.End(xlDown)).Select

Range(Selection, Selection.End(xlToRight)).Select

表示从所选单元格开始,向下至该列数据末尾,向右至行数据末尾的区域。

 

Selection.End(xlDown).Select

ActiveCell.Offset(1,0).Range("A1").Select

表示选择最后一行数据之后的空行中的第1个单元格。

 

这段代码很直观,基本上根据三个工作表的特点,采用了“硬编码”,可以根据具体工作表的情况对上述代码进行修改。当然,也可以优化代码,使其具有通用性。

 

运行代码后,结果如下图4所示。

4

undefined
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料。

文章转载自完美Excel,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论