这节我们学习下如何用宏来实现采购录入系统的效果,比如下面:
模拟一个简单的采购录入系统,一共两张表,一张采购单,一张采购明细,当在采购单中录入采购相关信息后点击保存,刚输入的信息就会自动保存到采购明细中去,并且会清空采购单中刚录入的采购信息,以备再次开单。
每张开好的单子点击保存时都会自动保存到采购明细中去。
本节的很多知识点在前面两节宏的操纵中都已经用过,比如清除内容,复制粘贴,前面两节中没遇到的难点如下:
在采购明细表中已经有一些数据的情况下,如何让再次的开单的信息能复制到已有数据的下面,因为每次往进复制时最后一条数据的位置都是变动的。
下面看下具体的步骤:
1、先做好前提工作,在采购明细表中,点击A1单元格,按CTRL+⬇,按两次,定位到A列最后一个单元格,A1048576。
2、回到采购单中,右键点击保存按钮,指定宏,录制宏,开始录制,
3、点击采购单工作表,选择A3:E9,复制,
4、点击采购明细工作表,CTRL+⬆,这样就会向上定位到A列最后一个有数据的单元格。
5、点击使用相对应用(此步骤非常关键),然后按⬇键,单元格会下移一格,即相对与最后一个有数据的单元格下移一格,右键点击选择性粘贴,数值,因为采购单金额有公式。
6、点击采购单工作表,点击使用相对引用,这样就解除了相对引用了,选择A3:D9,按delete(清除内容)。
7、鼠标随便点击一个单元格,停止录制。
好了,录制已经结束了,试试效果吧。
大家在录制的时候可以把代码窗口和工作表窗口并排,这样你的每一步操作都会产生代码,如果不小心误操作了,可以删除该步骤的代码,再重新操作,同时也可以学习下每步操作产生的代码。
上面步骤产生的代码如下:
Sub 保存单据()
Sheets("采购单").Select
Range("A3:E9").Select
Selection.Copy
Sheets("采购明细").Select
Selection.End(xlUp).Select
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("采购单").Select
Range("A3:D9").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("G4").Select
End Sub
这节主要是体会相对引用和绝对引用在录制宏中的应用。
转自:米宏Office