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

VBA宏编程操作指南(2)

来源:网络收集 时间:2026-09-07
导读: 第二部分: 1.2 第二部分:如何录制宏1、 如何录制宏。 首先打开 EXCEL2007,点到“开发工具”那一栏, (注意:有的人打开之后发 现没有开发工具那一栏, 原因可能是因为从没用过宏, 没有开启其功能, 需要在 “信

第二部分: 1.2 第二部分:如何录制宏1、 如何录制宏。 首先打开 EXCEL2007,点到“开发工具”那一栏, (注意:有的人打开之后发 现没有开发工具那一栏, 原因可能是因为从没用过宏, 没有开启其功能, 需要在 “信 任中心”下的宏设置里面设置为“启用所有宏”即可)

2、 开始录制宏 9 / 25

VBA宏编程操作指南

点击录制宏,如下图所示,出现一个对话框,输入宏的名字,点击确定即可。

之后“录制宏”会变成“停止录用” ,表示已经在录制过程中,在这个过程中你所 进行有关 EXCEL 的操作都会被以代码的形式记录下来。

第三部分: 1.3 第三部分:实例解释如果编写宏在你创建一个宏命令之前,花几分钟来考虑你究竟想做什么。因为宏命令是一大堆 键盘输入的集合,事先计划你的行动非常重要。最早的计划宏命令的方法是手动地将宏 命令需要做的事情做一遍。在你做键盘输入的同时,在一张纸上记录下他们实际发生的 情况,不要漏掉任何东西。象录音机一样,Excel 可以将你的所有动作录制下来(事实 上并非如此,有些操作是无法录制的) 。如果在录制宏之前,你没有很好地计划,你会 录制很多不必要的步骤,而这些都会影响运行速度。尽管修改宏代码比去除录制宏里面 不必要的步骤容易, 但是, 仅仅录制必要的步骤会节省你修改代码的时间和以后的麻烦。 编写宏最简单的方法:复制粘贴删多余,补头补尾补关键。

实例一: 实例一:10 / 25

VBA宏编程操作指南

TD 扰码规划工具的编写,看起来不复杂。 最主要的就是要 经纬度转换距离 这个工具,当然这也是一个宏,我们不需要了解它, 只要知道它的功能是转换距离就行了。

我们需要把宏所有需要的 EXCEL 文件放在同一个文件夹里。 下面是我按照我的规划思路通过 EXCEL 宏录制出来最原始的代码: 第一步: 第一步:进行扰码分组 Sub 进行扰码分组() ' ' Macro1 Macro Columns("N:N").Select Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove Range("N2").Select ActiveCell.FormulaR1C1 = "=INT(RC[-1]/4+1)" Range("N2").Select Selection.AutoFill Destination:=Range("N2:N79") Range("N

2:N79").Select Columns("N:N").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Rows("1:1").Select Application.CutCopyMode = False Selection.AutoFilter ActiveWorkbook.Worksheets("原始表").AutoFilter.Sort.SortFields.Clear ActiveWorkbook.Worksheets("原始表").AutoFilter.Sort.SortFields.Add Key:=Range _ ("N1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort .Header = xlYes .MatchCase = False 11 / 25

VBA宏编程操作指南

.Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Selection.AutoFilter End Sub 以上代码是我最开始录制的代码,我们需要对其进行修改。 其实修改代码很简单, 只要找对位置复制粘贴就可以了。 Application.DisplayAlerts 如 = False 代码,不管什么宏,只要把这句话加在代码的最前面就可以了。 红 色 标 注 的 Range("N2:N1000") , 注 意 看 是 从 Range("N2:N79") 改 为 Range("N2:N1000"),为什么要改为 1000 呢? 这是因为我们在录制宏的时候,采用的数据只有 79 行,而我们知道每次规划的原 始数据行数肯定会变化,有可能两百多行,为了防止数据不完全,我们就需要设置 一个范围,根据自己的理解去设置。 由上可知,我们设置为最大 1000 行,但是实际上的数据肯定是小于 1000 行的,这 样我们就需要把多余的行数删掉,就需要在代码后面加上下面这段代码,这样就能 够达到我们想要的效果了。 i=1 While (Cells(i, 1) <> "") i=i+1 Wend Cells(i, 1).Select Range(Selection, Selection.End(xlDown)).Select Selection.EntireRow.Delete

下面是修改之后的代码。 Sub 进行扰码分组() ' ' Macro1 Macro Application.DisplayAlerts = False Columns("N:N").Select Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove Range("N2").Select ActiveCell.FormulaR1C1 = "=INT(RC[-1]/4+1)" Range("N2").Select Selection.AutoFill Destination:=Range("N2:N1000") i=1 12 / 25

VBA宏编程操作指南

While (Cells(i, 1) <> "") i=i+1 Wend Cells(i, 1).Select Range(Selection, Selection.End(xlDown)).Select Selection.EntireRow.Delete Range("N2:N1000").Select Columns("N:N").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Rows("1:1").Select Application.CutCopyMode = False Selection.AutoFilter ActiveWorkbook.Worksheets("原始表").AutoFilter.Sort.SortFields.Clear ActiveWorkbook.Worksheets("原始表").AutoFilter.Sort.SortFields.Add Key:=Range _ ("N1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("原始表").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Selection.AutoFilter

End Sub 经过我们的稍微修改,复制粘贴几个关键代码,一个完整的宏代码就产生了,是不 是觉得很容易

呢?本来也不难的。

第二步: 第二步:经纬度转换距离 Sub 经纬度换算距离() ' ' Macro3 Macro ' Range("F2:G2").Select 13 / 25

VBA宏编程操作指南

Range(Selection, Selection.End(xlDown)).Select Selection.Copy Windows("经纬度算距离.xls").Activate Range("A2").Select ActiveSheet.Paste Windows("TD 扰码规划宏.xls").Activate Range("F1:G1").Select Application.CutCopyMode = False Selection.Copy Windows("经纬度算距离.xls").Activate Range("C2").Select ActiveSheet.Paste Range("C2").Select Application.CutCopyMode = False Selection.AutoFill Destination:=Range("C2:C79") Range("D2").Select Selection.AutoFill Destination:=Range("D2:D79") Range("E2").Select Selection.AutoFill Destination:=Range("E2:E79")

Columns("E:E").Select Selection.Copy Columns("G:G").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("G2").Select Range(Selection, Selection.End(xlDown)).Select Windows("TD 扰码规划宏.xls& …… 此处隐藏:4113字,全部文档内容请下载后查看。喜欢就下载吧 ……

VBA宏编程操作指南(2).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)