VBA学习笔记系列----ExcelVBA 基础

合集下载

Excel_VBA_基础入门

Excel_VBA_基础入门

目录第一章 Excel VBA 简明语言之基础第一节标识符第二节运算符第三节数据类型第四节变量与常量第五节数组使用第六节注释和赋值语句第七节书写规范第八节条件语句第九节循环语句第十节其他类语句和错误语句处理第十一节过程和函数第十二节内部函数第二章 Excel VBA常用对象之使用第一节文件的操作1) Excel文件2) 文本文件3) Access文件4) 文件其它操作第二节工作表操作1) 新建与删除2) 隐藏与显示3) 锁定与保护第三节单元格操作1) 如何引用单元格和区域2) 如何处理单元格和区域3) 单元格和区域的定位 4)单元格和区域的保护与锁定第四节图表的操作1) 新建及类型2) 设置图表的数据3) 图表格式设置4) 散点图增加系列和文字5) 实例第三章 Excel VBA高级使用第一节 Win API的使用1) 堀明API函数2) 使用API函数3) 堀明补充说明4) 实例第二节 Excel VBA程序的保密1) 使用动态连接库DLL2) 获得硬盘物理地址3) 加密与注册第四章 Excel VBA优化及结束语第一节 Excel VBA优化第二节结束语附录I Excel VBA对象框架图第一章 VBA语言基础第一节标识符一.定义标识符是一种标识变量、常量、过程、函数、类等语言构成单位的符号,利用它可以完成对变量、常量、过程、函数、类等的引用。

二.命名规则1)字母打头,由字母、数字和下划线组成,如 A987b_23Abc2)字符长度小于 40,(Excel2002以上中文版等,可以用汉字且长度可达 254个字符)3)不能与 VB保留关键字重名,如 public, private, dim, goto, next, with, integer, single等第二节运算符定义:运算符是代表 VB某种运算功能的符号。

1)赋值运算符=2)数学运算符&、 + (字符连接符 )、 +(加)、-(减)、 Mod(取余)、 \(整除)、*(乘)、/(除)、-(负号)、^(指数)3)逻辑运算符 Not(非)、 And(与)、 Or(或)、 Xor(异或)、 Eqv(相等)、 Imp(隐含)4)关系运算符= (相同)、 <>(不等)、>(大于)、<(小于)、 >=(不小于)、 <=(不大于)、 Like、 Is5)位运算符Not(逻辑非)、 And(逻辑与)、 Or(逻辑或)、 Xor(逻辑异或)、 Eqv(逻辑等)、 Imp(隐含)第三节数据类型VBA共有12种数据类型,具体见下表,此外用户还可以根据以下类型用 Type自定义数据类型。

Excel中VBA编程学习笔记(一)

Excel中VBA编程学习笔记(一)

Excel中VBA编程学习笔记(一)1、注释及编码规则注释:1.单引号:可以位于句子结尾或者单独一行;2.Rem:单独一行编码规则:1.如果VB中的关键字是由多个英文字母组成,则系统自动将每个单词的首字母转换成大写字母,其余字母一律转换成小写字母。

2.对于用户自定义的变量名、过程名、函数名,VB以第一次定义的为准,以后输入的自动转换成首次的形式。

3.如果在同一行写多条语句,语句间要用冒号“:”隔开。

例如:Form1.Width = 300 : Form1.Caption = “VB!”1.如果一条语句在一行写不下,可以分多行写,续航符为:一个空格后面跟一个下划线“_”。

例如:Address = “天津市河北工业大学” + _“现代化教学中心” + _“计算机技术基础教研室”2、类模块在Excel VBA中类模块就相当于一个类,类模块的名字就是类名。

下面为定义的一个类Class1,并且有些基本属性及一个初始化函数【例】下面定义一个类Class1,Private name, sex As StringPrivate age As IntegerPublic rng As RangeSub class_initialize() '初始化sex = "男"age = 20End SubPublic Property Get GetName() As VariantGetName = nameEnd PropertyPublic Property Get GetSex() As VariantGetSex = sexEnd PropertyPublic Property Get GetAge() As IntegerGetAge = ageEnd PropertyPublic Property Let SetName(newName As String)name = newNameEnd PropertyPublic Property Let SetSex(newSex As String)sex = newSexEnd PropertyPublic Property Let SetAge(newAge As Integer)age = newAgeEnd PropertyPublic Function GetInfo() As StringGetInfo = "姓名:" & name & ";性别:" & sex & ";年龄:" & ageEnd FunctionPublic Property Get maxNumer(num As Integer) As Integer maxNumber = Application.WorksheetFunction.Max(num, age)End PropertyPublic Property Set SetBckColor(myRng As Range)myRng.Interior.ColorIndex = 3End Property新建一个过程Sub test()Set tmp = New Class1Debug.Print tmp.GetAge() '20tmp.SetName = "张三"tmp.SetAge = 23Debug.Print tmp.GetInfo() '姓名:张三;性别:男;年龄:23Set tmp.SetBckColor = Sheet3.Rows(1) ‘将Sheet3的第一行背景色设置为红色End Sub3、新建对象及常用对象新建一个模块。

ExcelVBA基础教程两篇

ExcelVBA基础教程两篇

ExcelVBA基础教程两篇Excel VBA基础教程两篇篇一:Excel VBA基础教程Excel VBA教程是把VB编程应用在Excel平台的一套实用教程,Excel +VBA双剑合壁,他可以帮助我们实现Excel原本实现不了的功能,可以让工作变得更高效,可以让操作变得变方便,可以把重复性的操作变得更有趣,随心所欲的定制自己的工作平台,还可以针对企业来开发各种系统如,人事管理系统、仓库系统、进存销系统等,对于经常要处理大量数据工作的朋友,学会了这套VBA教程你的工作将游刃有余。

标题Excel VBA基础教程Excel VBA基础教程第一章:Excel VBA基础知识1-1、Excel VBA教程简介1-2、宏在工作中的运用1-3、Excel VBA基础1-4、Excel VBA窗口介绍1-5、Excel VBA代码编写规则1-6、对象1-7、属性1-8、方法1-9、常量与变量1-10、数据类型1-11、判断语句之IF1-12、判断语句IF之多条件1-12B、If条件判断小结1-13、判断语句之SELECT1-14、循环语句之DO...LOOP1-15、循环语句之DO...LOOP实例1-16、循环语句之DO WHILE...LOOP1-17、循环语句之DO UNTIL...LOOP1-18、循环语句之WHILE与UNTIL位置变化1-18B、DO...LOOP 语法小结1-19、.循环语句之FOR EACH...NEXT1-20、循环语句之FOX...NEXT1-20B、For...NEXT小结与实例1-21、用语句FOR...NEXT制作九九乘法表1-22、exit与end语句1-23、跳转语句1-24、错误分支语句1-25、with语句1-26、VBA与公式1-27、VBA与函数11-28、VBA与函数21-29、VBA与运算符1-30、like运算符1-31、like运算符运用1-32.综合运用(盘点清单核对)第二章:Excel工作簿和工作表操作2-0、工作簿与工作表基础知识2-1、工作簿的表示方法2-2、当前工作簿与活动工作簿2-3、工作簿基础操作2-4、工作簿实例应用2-5、工作表的表示方法2-6、工作表集合应用2-7、工作表增加与删除2-8、工作表增加删除实例2-9、工作表移动与复制2-10、工作表选择与激活2-11、工作簿综合运用(拆分工作簿)第三章:Excel单元格区域操作3-0、EXCEL单元格基础3-1、Range引用基础13-2、Range引用基础23-3、Range引用与变量3-4、Range引用与索引值3-5、Range引用与索引值应用(有条件的平均工资)3-6、Cells 单元格引用基础3-7、单元格简写3-8、三种单元格引用小结3-9、行、列引用3-10、row与column属性3-11、单元格的值与地址3-12、单元格移动与复制3-13、行列插入与删除3-14、活动单元格与选择区域3-15、UsedRange已使用区域(条件统计)3-16、currentregion当前区域3-17、单元格的Offset(给工资条加、减表头)3-18、单元格的resize(单据数据保存)3-19、单元格所在行与列(删除空行)3-20、specialcells定位(按批注汇总)3-21、FIND单元格查找技术3-22、单元格查找应用(制作查询系统)3-23、FIND实例应用(进销存之入库单)3-24、FIND实例应用(进销存之入库单)3-25、单元格END属性3-26、单元格END属性应用(查找分期付款最后月份) 3-27、最后的格格3-28、单元格并集(Union)3-29、单元格并集应用(条件筛选)3-30、单元格交集(Intersect)3-31、单元格式之数字格式3-32、单元格式之字体(VBA实现条件格式)3-33、给你点颜色看看(底纹颜色讨论)3-34、单元格式实例(工资条格式化)3-35、利用查找颜色拾取进行颜色汇总3-36、粘贴3-37、选择性粘贴3-38、合并单元格(相同部门的合并)3-39、合并单元格实例(取消合并单元格并保持数据)篇二:Excel VBA完全教程一、VBA 语言基础第一节标识符一.定义标识符是一种标识变量、常量、过程、函数、类等语言构成单位的符号,利用它可以完成对变量、常量、过程、函数、类等的引用。

详细的EXCEL编程基础知识VBA

详细的EXCEL编程基础知识VBA

第1章Range(单元格)对象Range对象是Excel应用程序中最常用的对象,一个Range对象代表一个单元格、一行、一列、包含一个或者更多单元格区域(可以是连续的单元格,也可以是不连续的单元格)中选定的单元格,甚至是多个工作表上的一组单元格,在操作Excel 内的任何区域之前都需要将其表示为一个Range对象,然后使用该Range对象的方法和属性。

技巧1 单元格的引用方法在VBA中经常需要引用单元格或单元格区域区域,主要有以下几种方法。

1-1使用Range属性VBA中可以使用Range属性返回单元格或单元格区域,如下面的代码所示。

#001 Sub RngSelect()#002 Sheet1.Range("A3:F6, B1:C5").Select#003 End Sub代码解析:RngSelect过程使用Select方法选中A3:F6,B1:C5单元格区域。

Range属性返回一个Range对象,该对象代表一个单元格或单元格区域,语法如下:Range(Cell1, Cell2)参数Cell1是必需的,必须为 A1 样式引用的宏语言,可包括区域操作符(冒号)、相交区域操作符(空格)或合并区域操作符(逗号)。

也可包括美元符号(即绝对地址,如“$A$1”)。

可在区域中任一部分使用局部定义名称,如Range("B2:LastCell"),其中LastCell为已定义的单元格区域名称。

参数Cell2是可选的,区域左上角和右下角的单元格。

运行Sub RngSelect过程,选中A3:F6, B1:C5单元格区域,如图1-1所示。

图1-1 使用Range属性引用单元格区域注意如果没有使用对象识别符,Range属性返回活动表的一个区域,如果活动表不是工作表,则该属性无效。

1-2使用Cells属性使用Cells属性返回一个Range对象,如下面的代码所示。

#001 Sub Cell()#002 Dim icell As Integer#003 For icell = 1 To 100#004 Sheet2.Cells(icell, 1).Value = icell#005 Next#006 End Sub代码解析:Cell过程使用For...Next语句为工作表中的A1:A100单元格区域填入序号。

Excel VBA基础

Excel VBA基础

Select Case语句:在设置条件时,应把最有可能发生的情况写在前面 Sub Test() If [a1].Value = "" Then MsgBox "A1单元格没有输入数字" Exit Sub ‘ 退出程序 End If Select Case [a1].Value‘ 测试表达式 Case Is < 30 ‘ 表达式列表,与测试表达式进行比较 MsgBox "差" Case Is < 60 MsgBox "不及格" Case Is < 80 MsgBox "及格" Case Is < 90 MsgBox "良好" Case Else MsgBox "优秀" End Select End Sub
菜单栏 工具栏
开始语句 注释语句
工程资源管理器
代码窗口
结束语句
属性窗口 立即窗口
代码:录制宏或者自主编写
过程:执行某些动作的代码组合,Sub过程(不返回运行结果)、 Function过程(返回运行结果)
模块:保存过程,一个模块可以保存多个不同类型的过程
对象:用代码进行操作的即是对象,如单元格、图片、工作表、透视表 Application.Workbooks("1").Worksheets("Sheet1").Range("A1")
程序控制语句:分为判断、分支、循环三种 If语句:例如判断A1单元格的数是否能被2、3、5其中之一整除 Sub test() If [a1] = "" Then MsgBox "A1单元格没有输入任何内容!" ElseIf [a1] Mod 2 = 0 Then MsgBox "A1单元格的数能被2整除!" ElseIf [a1] Mod 3 = 0 Then MsgBox "A1单元格的数能被3整除!" ElseIf [a1] Mod 5 = 0 Then MsgBox "A1单元格的数能被5整除!" Else MsgBox "A1单元格的数不能被2、3、5其中之一整除!" End If End Sub

ExcelVBA学习笔记

ExcelVBA学习笔记

ExcelVBA学习笔记Excel篇锁定区域第一步、选中所有单元格然后右键“设置单元格格式”选中保护选项卡,取消”锁定和隐藏复选框”的勾。

第二步、选中要锁定的单元格(也就是要保护的单元格),右键“设置单元格格式”选中保护选项卡,把”锁定和隐藏复选框”前面的勾上。

第三步、在“审阅(offeic2007版)”,“(offic2003版,在工具/保护/保护工作表)”菜单栏下找到保护工作表,弹出对话框,把“选定锁定单元格“的勾去除,把“选定未锁定的单元格”的复选框勾选(这样的话锁定的单元格将无法选取)。

如果需要可以继续插入行列,则需要在对话框里勾选“插入行“或“插入列“。

这里可以选择是否设置密码。

冻结窗口1、单击行编号(1,2,3……)—窗口—冻结窗口,可以实现编号上边的行被冻结;2、点击列标(A,B,C……)—窗口—冻结窗口,可以实现列标签左边部分被冻结;3、点击单元格—窗口—冻结窗口,可以实现单元格左边部分和上边同时被冻结。

数据列排序首先选择标题行,然后点击菜单栏的“数据”—“筛选”—“自动筛选”。

日期函数1. 计算某个月份的数据总和(日期列B,数据列D,指定日期B14)=SUMPRODUCT((MONTH($B$3:$B$400)=MONTH(B14))*$D$3:$D$400)2. 计算某个时期的数据总和(日期列B,数据列F,指定日期C4/C5)=SUMPRODUCT((B$3:B$400<=C5)*(B$3:B$400>=C4)*F$3:F$400)3. 时间判断函数,如果今天与指定日期l6的日期间隔小于30天,显示"需要续租"=IF(DATEDIF(TODAY(), I6, "d")<30, "需要续租","正常")函数技巧1. 使用$来锁定行或列,以后拖拉单元格时不会自动变化,例如=sum(F$3:F$400)2. 用连字符“&”来合并文本(此处假定将B、C、D列合并到一列中)=B1&C1&D13. 文本提取函数(RIGHT,LEFT,MID)=MID(A5,4,2)4. 财务填充函数(REPT)在A2单元格里的数字结尾处用“#”号填充至16位=A2&REPT("#",16-LEN(A2))5. 引用其他数据表的单元格<数据表名>!<单元格名>自定义数据颜色在工资表中,如果想让大于等于2000元的工资总额以“红色”显示,大于等于1500元的工资总额以“蓝色”显示,低于1000元的工资总额以“棕色”显示,其它以“黑色”显示,我们可以这样设置。

VBA|Excel宏与VBA的12个关键知识点(小白进阶篇)

VBA|Excel宏与VBA的12个关键知识点(小白进阶篇)

VBA|Excel宏与VBA的12个关键知识点(小白进阶篇)1 VBA代码编辑器VBE的“模块”1.1 打开VBE(快捷键是alt+F11)→插入,即可在工程列表的“模块”下插入模块;1.2 录制的“宏”在工程列表的“模块”下查看;1.3 自定义sub过程或函数在工程列表的“模块”下编写;(网上共享的代码复制到此处即可使用)2 录了一个宏Marco1后,如何再接着录?•执行Marco1;•录制宏Marco2;•将录制的宏Marco2的内容复制到Marco1后。

3 某列的最后非空行Dim Lrow As LongLrow = Range('B' & Cells.Rows.Count).End(xlUp).Row - 14 行号与行数Range('B2').Value = ActiveCell.RowRange('B3').Value = Sheets(1).UsedRange.Rows.Count5 ThisWorkbook和ActiveWorkbookThisWorkbook指当前VBA代码所处的Workbook,ActiveWorkbook指当前活跃的Workbook相同点:如果VBA代码只对本身工作簿进行操作,则一直是相同的。

不同点:若VBA代码新建或打开了其它工作簿,则往往新建的或刚打开的是Activeworkbook,可以通过“工作簿名。

active”方法激活指定对象。

活动工作表和活动单元格:如Sheets('Sheet2').Activate即可得到ActiveSheet对象。

如cells(1,1).select,即可得到ActiveCell对象。

6 UsedRange和CurrentRegionUsedRange和CurrentRegion(不区分大小写)是应用非常频繁的两个属性,Usedrange是工作表的属性,即其使用时应该是sheets(1).usedrange、sheets(2).usedrange这种形式,而currentregion是单元格的属性,即其使用应该是range('A1').currentregion或cells(1,1).CurrentRegion这种形式。

ExcelVBA学习笔记(一):单元格、单元格区域的表达式

ExcelVBA学习笔记(一):单元格、单元格区域的表达式

ExcelVBA学习笔记(⼀):单元格、单元格区域的表达式EXCEL表格中我们要处理的数据都位于单元格中,单元格及单元格区域怎么表⽰,就是VBA代码的基本了。

下⾯讲解⼏种常⽤的单元格、单元格区域语法表达式。

1、[A1] 最简单写法。

中括号,⾥⾯写上单元格地址,地址表述形式是列号在前,⾏号在后。

[A1:B10]表⽰A1到B10这么⼀个区域。

中括号内不需要加引号,因为中括号内不能⽤变量。

⽐如 n=10 ,[A1:B&n],是不⾏的。

2、cells(⾏号,列号)。

Cells多⽤于表⽰单个的单元格,参数是“⾏”在前,“列”在后。

Cells(1 , ”A”)表⽰的就是[A1]单元格,注意加引号“A”,不加引号会被认为是变量A。

Cells不带括号就表⽰所有单元格,之前讲到的Cells.Replace就是此⽤法。

带变量的写法:Cells(x, “A”),Cells(1, y),Cells(x,y);数字不能⽤作变量,所以数字1作为参数也不需要加引号。

变量x代表 “⾏”,变量y代表”列”,x的值只能为数字;变量y虽然可以为”A”这样的字符(下图),但通常使⽤中,都是给y赋值为数字。

语法:Cells(数字)还有这样的表⽰,见图:此表达式基本没见使⽤过,不做释义。

3、Range()本意是单元格区域的意思。

常⽤的表达式如下:(1)Range('A1') 就是单元格A1,等同于[A1]。

注意与Cells()的⾏在前,列在后顺序不同。

(2)Range('A1:B5') 从单元格A1到单元格B5区域;也可写为Range(“A1”,”B5”) 中间为逗号。

(3)Range('A1:B5 ,C1:C8') 多块区域的表达式。

(4)Range()带变量,表⽰单个单元格语法如Range(“A” & x) ,x为数字;单元格区域表达式Range('A1:F' & x) 等同于 Range('A1', 'F'&r) ,表⽰从A1到Fr区域范围。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档