VBA宏编程操作指南(2)
第二部分: 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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [专业资料]《蜜蜂之家》教学反思
- [专业资料]过去分词作定语和表语1
- [专业资料]苏州工业园区住房公积金贷款申请表
- [专业资料]保安管理制度及处罚条例细则
- [专业资料]2018年中国工程咨询市场发展现状调研及
- [专业资料]2015年电大本科《学前教育科研方法》期
- [专业资料]数字信号处理实验 matlab版 离散傅里叶
- [专业资料]“十三五”重点项目-虎杖白藜芦醇及功
- [专业资料]2015-2020年中国竹木工艺市场需求及投
- [专业资料]国际贸易理论与实务作业五:理论案例分
- [专业资料]财政部修订发布事业单位会计制度
- [专业资料]BCA蛋白浓度测定试剂盒(增强型)
- [专业资料]工程进度总计划横道图模板(通用版)
- [专业资料]七年级地理同步练习(天气与气候)
- [专业资料]X光安检机介绍火灾自动报警系统的组成
- [专业资料]衢州市人民政府办公室关于印发衢州市区
- [专业资料]经济全球化及其影响[1]
- [专业资料]质粒DNA限制性酶切图谱分析
- [专业资料]国家安全人民防线工作“六项”制度
- [专业资料]劳动力投入计划及保证措施
- 电子账册联网监管培训手册
- 人教版语文七年级上第1课《在山的那边
- 对我区担保行业发展现状的思考与建议
- 平面四边形网格自动生成方法研究
- 2016年党课学习心得体会范文
- 如何设置电脑定时关机
- 全球最美人妖排行榜新鲜出炉
- 社会实践调查报告及问卷
- Visual Basic习题集
- 《鱼我所欲也》课件2
- 浙江省会计从业资格考试试卷
- 全遥控数字音量控制的D 类功率放大器资
- 鞍钢宪法与后福特主义
- 电表的改装与校准实验报告(1)
- 2014年高考理科数学真题解析分类汇编:
- Windows 7 AIK 的使用
- 风电场全场停电事故应急处置方案
- 化工原理选填题题库(下)
- 关于产学研合作教育模式的学习与思考
- 西安先锋公馆项目前期定位报告




