教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 专业资料 >

VBA宏编程操作指南

来源:网络收集 时间:2026-09-07
导读: VBA宏编程操作指南 修订记录版本 V1.0 日期 2011-3-17 作者 jingpengtao 说明 VBA基础教程,不用自己写代码,不 用看懂代码也可以写出适合自己工作 的宏。 目录1.1 1.2 1.3 1.4 1.5 1.6 1.7 第一部分:关键代码解释 .......................................

VBA宏编程操作指南

修订记录版本 V1.0 日期 2011-3-17 作者 jingpengtao 说明 VBA基础教程,不用自己写代码,不 用看懂代码也可以写出适合自己工作 的宏。

目录1.1 1.2 1.3 1.4 1.5 1.6 1.7 第一部分:关键代码解释 ......................................................................................... 3 第二部分:如何录制宏 ............................................................................................. 9 第三部分:实例解释如果编写宏 ........................................................................... 10 第四部分:如何确定在哪个位置插入关键代码呢? ........................................... 20 第五部分:如何调试宏 ........................................................................................... 20 第六部分:分块合成 VBA 代码............................................................................... 22 第七部分:个人心得 ............................................................................................... 25

1 / 25

VBA宏编程操作指南

序:EXCEL 在我们平时的生活工作中有着广泛和重要的应用,尤其是对于每天和大量数 据打交道的人员更重要,但同时对大量数据的操作又显得是那么的繁琐,一不小心就很 容易出错,对于每天都需要用 EXCEL 做同样事情的人来说,要是能够有一种工具来自动 做工作就好了。 EXCEL 宏就是一个解决此类问题的办法,编写好一个实用的 EXCEL 宏可以大幅度提 高工作效率和质量,因此掌握宏编程显得尤为重要。 但是并不是每个人都学过编程,都了解 VBA 语言,那么怎样才能快速学习和掌握 应用宏呢? 下面我就根据我个人的学习经验及理解来教大家如何学习 VBA 编程。 不需要理解代码的含义,不需要知道哪一步操作是什么代码,只要你会复制粘贴, 就能够写出 EXCEL 宏,提高你的工作效率。 俗话说: “授之以鱼,不如授之以渔” ,所以替人写宏不如教给他方法,也方便各自 修改。 学完本教程,写一些简单的宏肯定可以。编写本教程的目的就是为了方便经常和数 据打交道的同事朋友,能够各自根据需要编写自己的宏。

备注:由于本教程 V1、0 版本只是针对从未接触过 VBA 语言及刚入门的人员编写 的,并未涉及更详细的代码分析及条件语句,循环语句,数据语句等,将会在后期的 版本更新中不断完善。

由于编者水平经验有限,难免会有一些不足之处,还望多多包涵。

2 / 25

VBA宏编程操作指南

第一部分: 1.1 第一部分:关键代码解释1、 Dim str As String str = ThisWorkbook.Path & "\***.xls" Workbooks.Open str 代码解释:自动打开文件名为“***” ,属性为 xls 的文件。同时 xlsx,csv 文件也可打开。 实际应用: 如果你的宏执行需要很多文件, 那么就可以再一开始就先执行

打开每个文件, 如: Dim str As String str = ThisWorkbook.Path & "\日常数据模板.xls" Workbooks.Open str str = ThisWorkbook.Path & "\临时表.xls" Workbooks.Open str str = ThisWorkbook.Path & "\扰码分布表.xls" Workbooks.Open str

2、 Windows("***.xls").Activate Workbooks("***.xls").Close SaveChanges:=False 代码解释:关闭文件名为“***” ,属性为 xls 的文件等。 其中 SaveChanges:=False 意为不保存直接关闭该文件,如果 SaveChanges:=True,则表示 保存之后再关闭该文件。 实际应用:在执行完所有的代码之后关闭各个已打开的文件,对于需要保存数据的 SaveChanges:=True 即可,对于不需要保存数据的 SaveChanges:=False。 如: Windows("日常数据模板.xls").Activate Workbooks("日常数据模板.xls").Close SaveChanges:=False Windows("扰码分布表.xls").Activate Workbooks("扰码分布表.xls").Close SaveChanges:=True Windows("临时表.xls").Activate Workbooks("临时表.xls").Close SaveChanges:=False

3 / 25

VBA宏编程操作指南

3、 i = 1 While (Cells(i, 1) <> "") i=i+1 Wend Cells(i, 1).Select ActiveSheet.Paste 代码解释: 此段语句主要是对单元格进行判断, 是否为空白, 如果为空白, 则执行粘贴。 具体解释请看下图:

假如你要把 N 个不同 EXCEL 的内容粘贴到一个新的 EXCEL 里,也就是汇总所有的数据。 假如第一个 EXCEL 内容有 13 行,第二个 EXCEL 内容有 18 行,第三个 EXCEL 内容有 20 行,等等。 也许你会说直接定位到单元格不行吗? 当然,对于每天固定行数的 EXCEL,是可以的,但是如果每天的数据都在变,今天第一 个 EXCEL 有 17 行, 第二天又变为 10 行, 第二个 EXCEL 今天有 20 行, 第二天变为 25 行, 这样你就没法使用固定的单元格定位粘贴数据了。 因此就需要上面的代码。 语句类型为 While……Wend…… While (Cells(i, 1) <> "") Cells(i, 1)当 i=1,表示 A1 单元格,也就是当 A1 单元格不为空白 的时候,执行 i = i + 1,也就是接着判断 A2 是不是空白,依次类推…… 当执行到 Ai 为空白时(如上图则表示执行到 A14) ,执行 Cells(i, 1).Select ActiveSheet.Paste,也就是选中 A14 单元格,进行粘贴。这样通过判断空白的方法就不 会因为行数的变动而产生影响了。 注意:上面我们说的只是根据 Cells(i, 1)判断,同样,也可以根据 Cells(i, 2)第二列判断, Cells(i, 3)第三列判断等,这样就可以避免因为前面几列的空白列而导致后面列的判断出 现问题。

4 / 25

VBA宏编程操作指南

4、 i = 1 While (Cells(i, 1) <> "") i=i+1 Wend Cells(i, 1).Select Range(Selection, Selection.End(xlDown)).Select Selection.EntireRow.Delete 代码解释:此段语句主要是对单元格进行判断,是否为空白,如果为空白,则执行该单 元格以下所有数据的清除。具体解释请看下图:

此代码的和 3 部分的代码有相似之处,不同的

地方时当判断 Cells(i, 1)为空时,下一 步的执行不一样。 Range(Selection, Selection.End(xlDown)).Select Selection.EntireRow.Delete 此语句执行之后如下:

也就是当 Cells(i, 1)为空时(本图表示 A13 为空时) ,从 A13 开始清除 A13 往右以及 5 / 25

VBA宏编程操作指南

往下所有的数据。 此语句主要用途:修正自动填充导致的数据超出计划。 Range("A2").Select Selection.AutoFill Destination:=Range("A2:A10")

假如你有 A1-A12 小区 CI 需要关联小区扰码,当你在 B2 单元格通过 VLOOKUP 关联 数据时,你肯定需要让 B2 自动填充到 B12。但是如果你每天都需要关联数据,而每次 数据都会变化,即今天要关联 A1-A12,明天是 A1-A20,这样就需要自动填充到 A20, 但是 EXCEL 不是智能的,你第一次设定的自动填充到 A12,当然不会变了,这样就有可 能导致数据不全。 为了解决这个问题,你可以让 EXCEL 自动填充到第 1000 行,然后把多余的删掉就 可以了(也就是把 20 行以后自动填充的数据自动删除) 。 如图所示:从 B21 开始出现#N/A,这些数据没用的,使用 …… 此处隐藏:4079字,全部文档内容请下载后查看。喜欢就下载吧 ……

VBA宏编程操作指南.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/266104.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)