教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 政务民生 >

excel - VBA基础入门 - 图文(9)

来源:网络收集 时间:2026-05-25
导读: 除去注释的部分,实际上只有句代码。不用我细讲,大家已经知道它们的作用分别是:第一句选中A1单元格,第二句复制选中的单元格,第三句选中B1单元格,第四句粘贴。 但是,就像我们用VBA在单元格输入数据不用先选中

除去注释的部分,实际上只有句代码。不用我细讲,大家已经知道它们的作用分别是:第一句选中A1单元格,第二句复制选中的单元格,第三句选中B1单元格,第四句粘贴。 但是,就像我们用VBA在单元格输入数据不用先选中它一样,我们同样可以在不选中单元格的情况下就执行复制粘贴命令。所以,以上的代码实际上我们可以简化为: 复制内容到剪贴板 代码:

Sub Macro1()

Range(\ End Sub

以上的代码只是发生在活动工作表内,如果要在其他工作薄或工作薄中实现复制粘贴的命令,只需要改变引用即可。如我们要将Book1.xls的第一个工作表中的A1:A10复制到Book2.xls的第一个工作表中的B1:B10单元格,则代码为: 复制内容到剪贴板 代码:

Sub mycopy()

Workbooks(\ Workbooks(\ End Sub 引用:

提示:一行的代码过长,可以用空格加下划线进行换行。

复制的区域过大时,对于目标区域,我们可以只指定一个单元格,这时它代表目标区域的左上角单元格。如上面的代码,我们可以写成这样: 复制内容到剪贴板 代码:

Sub mycopy()

Workbooks(\ Workbooks(\ End Sub

如果你需要只粘贴数值,或其他什么,你可以利用录制选择性粘贴的宏来进行修改。同样的道理,我就不再多说。 二、剪切单元格

剪切单元格,或者说移动单元格和复制单元格类似,有了上面的经验,我们不难得到它的语句。其实它和复制单元格的命令大同小异,唯一不同的是使用Cut方法代替了Copy方法。 下面的代码是将A1:A10单元格的数移动到B1:B10单元格: 复制内容到剪贴板 代码:

Sub mycut()

[a1:a10].Cut [b1] End Sub

三、删除单元格

删除一个单元格的命令也很简单,调用Range对象的Delete方法即可。同我们用鼠标操作一样,同样有四个选项,下面以删除A1单元格为例: 复制内容到剪贴板 代码:

[a1].Delete Shift:=xlUp ' 下方单元格上移

[a1].Delete Shift:=xlToLeft ' 右侧单元格左移 [a1].EntireRow.Delete ' 整行删除 [a1].EntireColumn.Delete ' 整列删除

只写成[a1].Delete时,默认为?下方单元格上移?。 Range对象的End属性

Range对象有一个End属性,也许你在阅读别人的例子里经常会看到如?[A65536].End(xlUp).Row?这样的语句,这就是End属性的利用。

End属性应用于Range对象,同样也返回一个Range对象。该对象代表包含源区域的区域结尾处的单元格。如果你还是不明白,那请你在工作表里试一试,分别按Ctrl+上、下、左、右方向键,看看得到的是什么?End属性返回的单元格就相当于在源单元格按住Ctrl键+上(或下、左、右)方向键所得到的单元格。它的语句格式简单写为: 源区域.End(移动方向) 移动方向可以是:

xlToLeft :向左移动,相当于在源区域按Ctrl+左方向键。 xlToRight:向右移动,相当于在源区域按Ctrl+右方向键。 xlUp:向上移动,相当于在源区域按Ctrl+上方向键。 xlDown:向下移动,相当于在源区域按Ctrl+下方向键。

所以在程序设计的过程中,很多人喜欢用?[A65536].End(xlUp).Row?语句来返回A列的最后一个非空单元格的行号。

如果当前活动工作表的A列填写的是学生的姓名,现在我们想在表中A列最后一个学生的后面增加一个叫?张青?的学生,则代码为: 复制内容到剪贴板 代码:

ActiveSheet.Cells([A65536].End(xlUp).Row + 1, 1).Value = \张青\

语句 [A65536].End(xlUp).Row + 1中,行号加1的目的是在最后一个非空单元格的下一个单元格里输入数据。需要注意的是:如果你的A列全为空的话,?[A65536].End(xlUp).Row?这个语句返回的是1。

我们来做一个简易的学生信息录入的例子:

(1)点工作表中的?录入资料?按钮,弹出?录入?窗体; (2)录入信息后,点击?确定?按钮即完成记录追加; (3)不考虑录入内容是否规范。

详细请看附件, 信息录入.rar (11.09 KB) 信息录入.rar (11.09 KB)

附件没有设密码,希望大家尝试过后再看代码! 汇总多工作表花名册 上一贴中,?花名册分类?的题目主要是检验大家对循环语句、判断语句及一些单元格数据处理的方法。因为目标工作表和源工作表的格式都是一样的,所以处理起来也相对比较简单,无非就是给数据搬了个家。所以可以用我们前面贴子里说的Copy的方法,当然,也可以直接等于源区域的Value属性,即:目标区域.value=源区域.value。比如我们想把Sheet1里的第一行数据复制到Sheet2的第一行,可以用以下两句代码中的任意一句: 复制内容到剪贴板 代码:

Sheets(\ 代码:

Sheets(\ 这一点,在?宝贝?的作业里已经用到了。

上次的作业是对名册进行分类,进行原样的搬家。这一次的作业还是搬家,和上次不一样的是,这次是将名册汇总到一个工作表,而且只汇总相应的内容,不再是那种原封不动的搬家了。当然,原理还是一样,如果你会了前一题,这一题对你来说,就显得很小儿科了。 设计一个程序,能否实现目的很重要,实现目的的同时,高效率的程序也是我们追求的。但是我们现在才开始,大家不必太过于考虑效率的问题,管他什么代码,只要能实现目的即可。在附件里,我加了计算程序执行时间的代码,你不用去管它,之所以加上这段代码,是因为在下面的帖子里我可能会用到。 复制内容到剪贴板 代码:

Sub mysub()

Dim start As Double start = Timer

'在这里添加你的代码

MsgBox \程序共执行了\秒!\ End Sub

作业见附件, 学生花名册汇总.rar (21.53 KB) 学生花名册汇总.rar (21.53 KB) 下载次数: 218 2009-8-27 12:53

此贴到此为止,咱们不见不散,楼下见!

新建工作表

---------------------

在?花名册分类?的作业里,moon2778加入了为不同地区建立工作表代码,让?沧海一滴?和?宝贝有酒窝?两个朋友都跟贴问了新建工作表的相关问题。有需要就有市场,呵呵......那我再在这里简单讲一讲我对新建工作表的认识,希望对大家学习有帮助。

新建一个工作表(Worksheet),要调用工作表(Worksheet对象)的Add方法(可以建制一个新建工作表的宏来查看相关的代码)。

如果我们想在当前工作表中新建一个工作表,代码可以写为: 复制内容到剪贴板 代码:

Worksheets.Add '新建的工作表的位臵在当前活动工作表的前面

此时,新建的工作表Excel默认把它放在活动工作表的前面,如果我们需要改变它的位臵也是可以的。例如: 复制内容到剪贴板 代码:

Worksheets.Add before:=Worksheets(\ '在工作表sheet2之前添加一个工作表

Worksheets.Add before:=Worksheets(1) '在最前面添加一个工作表

Worksheets.Add after:=Worksheets(\在工作表sheet2之后添加一个工作表\

Worksheets.Add after:=Worksheets(Worksheets.Count) '在最后面添加一个工作表

试了以上的代码,我们会发现,新添加的工作表都是采用?老大、老二、老三.... …… 此处隐藏:4046字,全部文档内容请下载后查看。喜欢就下载吧 ……

excel - VBA基础入门 - 图文(9).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/447493.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)