Excel VBA 入门(零)】的更多相关文章

本教程所用系统环境: Windows 10 Excel 2013 1. 添加开发工具 打开Excel,依然找到"文件"->"选项"->"自定义功能区",在右侧主选项卡下面的选项中,找到"开发工具",在前面的小框打勾,确定.返回Excel,即可在菜单栏右侧看到有开发工具: 2. 使用VBE VBE即VBA的编辑环境.通常有两种方式可以进入 菜单栏 -> 开发工具 -> Visual Basic 快捷键:A…
虽然我前面讲过,在VBA中操作工作薄并不是件明智的事,但有些时候,还是避免不了要这么做.绝大多数情况下,我们要做的是获取到某个工作薄对象,并以此来获得其中的工作表对象,然后再对工作表中的数据进行处理.而后面这一部分(操作工作表)在前面已经讲过了,所以本章只讲如何在VBA中打开.关闭工作薄,以及介绍两个常用的工作薄对象.在VBA中打开工作薄有两种方法:显式打开及隐式打开. 1. 显式打开 显式打开即跟我们手动双击打开一个Excel文件一样,可以看到工作薄的内容,可以在里面进行各种操作.代码及示例如…
本文基于以下文件 http://pan.baidu.com/s/1nvJtsu9 (部分)内容预览: 1. 边框样式 Sub cell_format() Dim sht As Worksheet Dim rng As Range Set sht = Worksheets("Parameter") Set rng = sht.Range("B2:C20") ' 设置边框格式 ' 这是常规的实线.细线,默认颜色为黑色 rng.Borders.LineStyle = xl…
系统性的知识前面已经讲完,从本章开始,本系列教程涉及的将会是一些相对凌散的内容. 1. 注释 代码注释是一件利人利己的事,为了方便自己在代码需要更新修改时,依然能够快速地看懂自己完的每一行代码到底是什么意思有何用处,在关键点加上代码注释是很有必要的.如果要让别人也能看懂自己的代码,那么注释更是不可或缺的. VBA中有两种注释的方法,其一是使用单引号,另一种是Rem.在单引号后面或Rem后面的所有内容,在程序运行时都不会被执行,它们就是注释的内容.通常注释的内容会被用其它颜色标识.如下: 有点不方…
前面讲过,VBA代码有两种组织形式,一种就是过程(前面的示例中都在使用),另一种就是函数.其实过程和函数有很多相同之处,除了使用的关键字不同之外,还有不同的是: 函数有返回值,过程没有 函数可以在Excel表格中像一般的Excel函数那样使用,但过程不可以 过程可以指定给Excel表格中的按钮或者图片等对象,但是函数不可以 函数只能在被调用时执行,比如在过程中调用,或者在另一个函数中调用,或者在Excel表格中调用.但不能直接执行,而过程是可以的 虽然可以把所有代码都放在一个过程,或者一个函数里…
本章是本系列教程的重点.但我觉得应该不是难点.从第零章开始到学完本章,应该可以把VBA用于实战中了. Excel对象主要有4个: 工作薄 Workbook 工作表 Worksheet 单元格区域 Range 单元格 Cell 这里我只讲后面3个,不讲工作薄.原因有2点: 第零章里面讲过,工作薄其实就是一个Excel文件.我不建议直接操作Excel文件.因为文件属性被更改的机率高.比如修改了文件名,或者文件被移动到其它地方去了,这样的话,写死的VBA代码就不管用了.这是主要原因 学完本章,或者后面…
所谓循环控制,即在循环执行一段代码,用于完成一些重复性任务. VBA中的循环控制语句主要有3种:for.while.loop.对于大多数人来说,for的使用频率最高,而我个人也觉得for是最为灵活的,在很多场合下都可以使用,相较while和loop,其逻辑也再加清晰,更便于对循环进行控制. 1. For循环 for循环有两种形式,一种为明确地知道要循环的次数的,比如从1到10循环执行10次:另一种则用于循环历遍某个集合对象,这个对象有多少个单位就循环执行多少次,可以视为是未知循环次数的. ① 循…
VBA中的流程控制分为两种,其一是条件结构式的,即根据条件判断的结果去选择性执行相应的语句(块):另一种是循环,即循环地执行语句(块).本节介绍第一种. 1. IF if 语句其实包含有几种形式: ① If...Then...End If 其格式为: If 逻辑表达式 Then ' 如果逻辑表达式为真,则执行这里的语句 End if 例如: If 8 > 5 Then Debug.Print "Yes" End If 输出结果为:Yes ② If...Then...Else...…
与其它的编程语言一样,VBA也有它自己的数据类型.讲到数据类型,就离不开"变量"与"常量"这两个概念,变量与常量,都是用于保存数据的.顾名思义,"变量"是会变的,即它的值是可以改变的:而常量,则它的值通常是固定不变的. 定义数据类型的优点有2个: 便于内存管理 便于程序进行计算(数值型)和其它使用(非数值型) VBA中的基本数据类型有多种,但常用到的只有其中一半左右. 0. 变量的定义 VBA中用 Dim 变量名 As 数据类型 的格式来定义基本…
数组和字典也是VBA的常用到数据类型之一.但是我翻了有四五本VBA教程相关的书,里面都没有介绍到字典,数组到是在介绍数据类型时有介绍,而并没有提到字典. 事实上,字典不是VBA内置的类型,它是Windows脚本语言的.但其实字典在VBA中也是非常重要的,它非常适用于需要进行非重复性数据的操作.我多次需要使用到字典,但很少用到数组. 1. 数组 如果有学过其它编程语言,应该对数组不陌生.其实数组就是多个变量的集合,而且它是有顺序的,通过索引来访问一个数组中的各个值. 但应该记住的是:数组中的各个数…
VBA 中的用户窗体就是指带 UI 的用户界面,在运行的时候会单独弹出一个窗口,类似于在 windows 系统中运行的一个可执行程序一样(这个说法不太严谨,因为可执行程序也可能是只有命令窗口而没有 UI 的).再具体一点,就是一个窗口界面当中,有可能会包含有文本框.复选框.单选按钮.下拉列表,就如在网页中填写的表单一样.再具体一点,就是如下图这样的: 1. 用户界面设计 如上图,UI 设计的部分其实是很简单的,微软的特色,直接拖拉拽就可以实现了.而每一个控件(或者称为元素,也即放进窗体中的各种按…
Private Sub RegExp_Replace() Dim RegExp As Object Dim SearchRange As Range, Cell As Range '此处定义正则表达式 Set RegExp = CreateObject("vbscript.regexp") RegExp.Pattern = "[0-9]{5}" '此处指定查找范围 Set SearchRange = ActiveSheet.Range("A1:A99&qu…
VBE有丰富的调试工具, 比如立即窗口, 本地窗口, 监视窗口, 断点调试... 第一个博文中已经讲过调试的基本操作: 设置断点, F5运行, F8逐条运行 断点就是程序中暂停停止运行的位置, 设置断点之后, 当运行到断点行所在的语句程序就进入中断模式, 此时在本地窗口和立即窗口中 可以查看变量以及对象的属性值. 1. debug 介绍: 调试工具的基石 debug.print x   在不中断程序的情况下输出x 的值 debug.assert 与if 类似, 用与判断一个条件是否成立, 但是i…
一.文件格式 要使用VBA,excel文件必须保存为启用宏的工作簿,即xlsm格式. 二.启动VBA编辑器 打开工作簿后,要启动VBA编辑器,有两种方法,一是在工作表的名字上面点击右键,选择“查看代码”,另一种就是快捷键Alt+F11 三.工程资源管理器简介 VBA编辑器右边的树形目录就是工程资源管理器,如下图,列示了一个工程(VBAProject)及其下面的各个对象.一个工作簿就是一个工程,下面的sheet1就代表一张工作表,双击它可以查看和编辑这张工作表的代码,在里面实现各种功能,ThisW…
一.Excel VBA 表格的操作1. Excel表格的指定以及表格属性的设置 Sub main() '把表格B2的值改为"VBA Range和Cells函数" Range("B2").Value = "VBA Range和Cells函数" '把D4:E6范围内的每一个表格的值都改为"Excel VBA" Range("D4:E5").Value = "Excel VBA" End Su…
原文地址 本文的对象是:有一定Excel VBA基础,对Word VBA还没有什么认识,想在Excel中通过VBA操作Word还有困难的人.   一.新建Word引用 需要首先创建一个对 Word Application 对象的引用.在VBA中,工具-引用,选取“MicroSoft Word 11.0 Object Library”. 方法一.New Word.Application     Dim Wordapp As Word.Application     Set Wordapp = Ne…
在前两波中,已完成了Excel与Sqlserver的查询和上传功能,但难免许多临时的或更深入地操作数据库需要用Sql语句来操作,对一般用户电脑里,不可能有条件轻易安装一个数据库客户端软件,就算安装了对其中烦多的功能操作也不胜任. 开发一个简单的接受SQL语句对数据库进行访问操作就有点必要,当然这个落脚点放到Excel上是很不错的选择,毕竟所有用户电脑都有安装Excel. 并且在Excel上批量构造SQL语句也是容易的事,若有数据需要从数据库中导出,Excel作为装载小量数据并进行后续分析的容器是…
Excel作为众多数据存储的交换介质,在不同的系统内的数据很少可以很连贯地进行整合分析,一般的业务系统都会提供导出Excel作为标配功能供用户使用系统内生成的数据. 此时最大的问题是,Excel很维去成为各个数据源的整合方,其数据存储能力和运算能力一直是众多深度Excel用户们一大头痛的事情,当数据量一大,做什么操作都会慢下来. 今天Excel催化剂将给大家带来全新的解决方案,Excel与Sqlserver深度集成,在Excel上的数据源能轻松上传至Sqlserver中,实现以Sqlserver…
Excel VBA数组入门教程 1. 前言:不要把VBA数组想的太神秘,它其实就是一组数字而已. 2. 数组的维数: Sub 数组示例()  Dim x As Long, y As Long  Dim arr(1 To 10, 1 To 3)  '创建一个可以容下10行3列的数组空间  For x = 1 To 4    For y = 1 To 3       arr(x, y) = Cells(x, y)  '通过循环把单元格区域a1:c4的数据装进数组中    Next y  Next x…
我不是IT专业人士,而是一位医务工作者,当初学习Excel VBA时,是因为读研究生时的课题需要:实验仪器每天产生4个Word文件,每个文件有9个表格,总计近百个数据.为了对这些数据进行统计分析,则需要将它们导入到一个Excel文件.当时老板让我坚持每天手工操作.我相当地厌倦这种枯燥的没有任何成就感的工作. 学习Excel.Word时,知道有个宏功能,可以实现办公自动化,仔细看了微软的介绍后,知道了“宏的另一种状态”,Visual Basic for Application,其简称也就是大名鼎鼎…
来吧!带你玩转 Excel VBA 从错失良机到艰辛的DOS征程,从坎坷购机自学路到转机起程,从爱好到事业,他从一个完全不懂电脑的人到VBA高级应用者,一切全是自学…… 我是罗刚君,来自四川的一个小县城——资中县. 我是个地道的三无人员——无高等学历(初中毕业).无突出特长.无显赫背景,所以1996年1月,当时才19岁的我就踏上了打工之路. 错失机遇 在打工生涯的前几年,一直在东莞市裕元鞋厂流水线上工作,无缘接触电脑,甚至曾有一段时间在心理上抵触电脑. 记得大概是1998 埗 年时,东莞市高 镇…
近日的一系列工作是做网站的营运维护,因此做了大量的支持工具.有Excel中写VBA的,也有直接C#做的工具.有时需要在C#中执行Excel VBA宏,甚至有时还需要在执行了VBA宏之后,获取返回值再进行相应的处理.为了使用方便,我写了一个执行Excel VBA宏的帮助类 .放在博客里做个备份也希望对有类似需求的朋友有所帮助.帮助类仅提供了一个方法:RunExcelMacro 参数说明:         string         excelFilePath  Excel文件路径        …
---恢复内容开始--- 转一个Excel VBA的小游戏,最近对excel有了更深入的了解,功能很强大,也刷新了我对待事情的态度. 一.准备界面 我们先来把游戏界面准备好,选中前4行,行高调成50,这时候单元格就近似一个正方形.然后给4*4的单元格加上全部框线,再加粗外框线.字体改成微软雅黑,加粗,居中.第6行A列写上SCORE,C列写上MOVES,都加粗. 一般2048这样的游戏需要用状态机来实现,就是程序无限运行直到游戏结束.在Excel中这种方法不太合适,使用工作表自带的Workshee…
公司网点表存储的坐标是百度坐标,现需要将网点位置标注到高德地图上,研究了一下高德地图的云图数据模版 http://lbs.amap.com/yuntu/reference/cloudstorage和坐标转换服务http://lbsbbs.amap.com/forum.php?mod=viewthread&tid=724,云数据管理平台http://yuntu.amap.com/datamanager/   ,实现了excel文件的导入,现将实现步骤及使用的一些技巧总结一下: 本地数据导出为高德云…
这是6,7年前做的一个excel vba自动计算附合导线平差的表格. 对于做测绘的朋友来说,附合导线平差是最基础的技能,目前来说,能平差的软件和工具也很多,像南方的平差易,科傻平差.清华三维平差等,但这些软件操作较复杂,且界面不友好,于是很多人用excel强大的公式函数功能,做了很多自动计算的表格,但这些表格很死板,未知点的个数不能自定义,操作起来也并不简单,于是本人改进了表格,能够实现按自定义未知点个数进行平差计算,所有步骤都是自动化的,只需要输入起算点和观测数据即可,计算结果准确,使用方便.…
本文主要内容: Oracle环境配置 ODBC驱动设置.第三方驱动下载 VBA连接Oracle连接方法 Oracle10g官方免账号下载地址 系统环境: Windows 7 64bit Excel 2016 64bit Oracle_win64_11gR2_client完整客户端(64bit) 1. VBA连接Oracle前的环境配置 如果想连接本地数据库,必须先安装Oracle服务器端. 我这里使用的是内网其他电脑上的Oracle数据库,这里只安装Oracle客户端就可以. 1.1 安装Ora…
Excel vba 操作 批量生成sheet目录并添加超链接 Sub Add_Sheets_Link() 'Worksheets(5)为清单目录页 '在sheet页上生成sheet页名字并超链接 To ThisWorkbook.Worksheets.Count Worksheets().Cells(i + , ).Value = Worksheets(i).Name Worksheets().Hyperlinks.Add Anchor:=Worksheets().Cells(i + , ), A…
写在前面: .编写宏,打开VBA,双击ThisWorkbook对当前工作薄进行编写宏:双击Sheet1,对整个sheet编写宏: 或者创建模块,在模块里,编写.调试代码. 打开VBA的方法见第一讲,结合常用窗口进行编写.调试. .部分对象有提示,如Dim a As,敲击空格后有提示. .所有宏要运行,必须启动宏.(2007版启动宏,点击表格左上角 “excel选项” “信任中心” “信任中心设置” “启用宏”) .“无法在未启用宏的工作簿中保存以下功能”提示,选是后,宏会整个丢失. 2007版,…
Public Function pizhu(i As Range) pizhu = i.Cells.Comment.Text End Function EXcel VBA获取批注信息…