VBA学习笔记(2007.3.24)

合集下载

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、新建对象及常用对象新建一个模块。

VBA入门笔记

VBA入门笔记

VBA入门笔记Dim ARR2X = Worksheets.Count '工作表数目m = 0For I = 2 To X '遍历工作表,第一张工作表除外。

y = Sheets(I).Range('A65536').End(xlUp).Row '定位工作表中有数据的行ARR1 = Sheets(I).Range('A4:IV' & y) '将子表中A4到有数据行的区域赋值给ARR1数组If m > 0 ThenReDim Preserve ARR2(1 To 256, 1 T o m + y - 3) '定义增大一个二维数组。

Preserve 为ReDim语法的可选的关键字,当改变原有数组最末维的大小时,使用此关键字可以保持数组中原来的数据。

ElseReDim ARR2(1 To 256, 1 To m + y - 3) '定义二维数组,此数组为一个二维数组,256为行号,y-3为列号。

第一次使用。

End IfFor p = 1 To 256For q = 1 To y - 3ARR2(p, q + m) = ARR1(q, p) '将子表中A4到有数据行的区域赋值给ARR2Next qNext pm = UBound(ARR2, 2) '返回ARR2数组的最大下标。

Next ISheets('汇总').Range('a4:IV' & UBound(ARR2, 2) + 3) = Application.Transpose(ARR2)End Sub53.'高亮显示所选单元格Private Sub Worksheet_SelectionChange(ByVal Target As Range)Cells.Interior.ColorIndex = 0Target.Interior.ColorIndex = 45End Sub54.'高亮显示所选单元格所在行Private Sub Worksheet_SelectionChange(ByVal Target As Range)Cells.Interior.ColorIndex = xlNoneWith Selection 'Selection=所选单元格 ActiveCell=活动单元格.EntireRow.Interior.ColorIndex = 44' .EntireColumn.Interior.ColorIndex = 44End WithEnd Sub55.分页符:55.1ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell '插入行分页符55.2ActiveWindow.SelectedSheets.VPageBreaks.Add Before:=ActiveCell '插入列分页符55.3ActiveSheet.ResetAllPageBreaks '删除全部分页符56.设置打印机56.1Application.ActivePrinter = '\\10.202.41.60\HP LaserJet M1005 在 Ne01:' '激光打印机56.2Application.ActivePrinter = '\\10.202.41.34\OKI MICROLINE 6100F 在 Ne00:' '针式打印机56.3Application.ActivePrinter = 'pdfFactory Pro 在 FPP3:' '虚拟打印机57.改变下图J1单元格内容,自动填写表格。

VBA初学者的必备知识点整理

VBA初学者的必备知识点整理

VBA初学者的必备知识点整理VBA(Virtual Basic for Applications)是一种微软的编程语言,用于扩展和自定义Microsoft Office套件中的应用程序。

对于初学者来说,学习VBA可能会感到有些困惑和挑战。

为了帮助初学者更好地掌握VBA,本文将整理一些VBA初学者的必备知识点,旨在为初学者提供一个良好的起点。

一、了解VBA的基本概念和用途VBA是一种面向对象的编程语言,用于自定义和扩展Microsoft Office套件中的各种应用程序,如Excel、Word和PowerPoint等。

通过使用VBA,用户可以编写自己的代码来增强这些应用程序的功能。

VBA的代码可以实现自动化任务、数据处理、生成报告等各种功能。

二、掌握VBA的开发环境VBA的开发环境是Microsoft Office套件自带的“Visual Basic for Applications编辑器”(简称VBE)。

学习VBA之前,需要了解VBE的基本操作和功能,如打开VBE、新建模块、调试代码等。

熟悉VBE的使用将有助于更好地编写和调试VBA代码。

三、认识VBA的基本语法和数据类型VBA的语法与其他编程语言类似,包括变量声明、条件语句、循环语句和函数等。

了解VBA的基本语法和数据类型是学习VBA的前提。

常见的VBA数据类型包括整数、字符串、布尔值和日期等,每种数据类型都有其特定的用途和操作方法。

四、掌握VBA的操作对象和方法VBA通过操作对象和调用对象的方法来实现各种功能。

在VBA中,各种应用程序中的对象都有特定的属性和方法。

例如,在Excel中,可以通过VBA来操作工作簿、工作表、单元格等对象,实现自动化数据处理和报告生成。

学习VBA的过程中,需要掌握各种对象和方法的基本概念和用法。

五、学会使用VBA的控制结构和函数VBA提供了丰富的控制结构和函数,使编写代码更加灵活和高效。

控制结构包括条件语句(如If语句和Select Case语句)和循环语句(如For循环和Do循环),可以根据条件和循环来执行不同的操作。

快速学习VBA编程语言基础知识

快速学习VBA编程语言基础知识

快速学习VBA编程语言基础知识VBA(Visual Basic for Applications)是一种宏编程语言,是Microsoft Office套件中的一部分,通过使用VBA,用户可以自动化执行各种任务,增加工作效率。

本文将带你快速学习VBA编程语言的基础知识,包括VBA的概述、变量和数据类型、控制语句、函数和子程序等内容。

第一章:VBA的概述VBA是一种基于Visual Basic语言的宏编程语言,它可以用于编写自动化任务、自定义功能和处理数据。

VBA可以与Office套件中的各种应用程序(如Excel、Word和PowerPoint等)进行集成,使用户能够通过编程方式操作这些应用程序。

VBA的语法与VB语言非常相似,学习VBA可以帮助你更好地理解VB语言的工作原理。

第二章:变量和数据类型在VBA中,变量用于存储数据,数据类型定义了变量可以存储的数据种类。

VBA中常见的数据类型包括整型、浮点型、字符串型、布尔型和日期型等。

本章将详细介绍这些数据类型的特点和使用方法,并教你如何声明和初始化变量。

第三章:控制语句控制语句是VBA编程中用于决策和控制程序流程的关键工具。

本章将介绍VBA中的条件语句(如If语句和Select Case语句)和循环语句(如For循环和Do循环),并给出实际案例来说明它们的用法。

了解和掌握控制语句,可以使你的程序更加灵活和高效。

第四章:函数和子程序函数和子程序是一种封装代码的方式,可以重复使用,并且可以实现复杂的功能。

VBA内置了许多常用的函数(如字符串处理函数和数学函数等),同时也允许用户创建自定义函数和子程序。

本章将介绍如何使用VBA内置函数和如何创建自定义函数和子程序,通过实例帮助你理解其用法。

第五章:错误处理在编程过程中,错误是不可避免的。

VBA提供了一套完善的错误处理机制,可以帮助用户发现和处理程序中的错误。

本章将介绍错误处理的基本原则和常用的处理方法,例如使用On Error语句和Err对象来捕获和处理错误。

ExcelVBA自学笔记

ExcelVBA自学笔记

ExcelVBA自学笔记一、对象、集合、属性与方法介绍1.对象对象就是客观存在的东西,是具体存在的事物,如:桌子、电脑等。

E某celVBA中的对象是指在E某cel里操作和控制的东西,如:工作表、单元格、图片等。

VBA通过代码类操作E某cel,处理数据。

编写VBA程,就是编写VBA语句引用对象,有目的的操作它。

引用对象就是指明对象的位置或名称,把它同集合里的其他对象区别开来。

2.集合集合也是对象,是包含一组相关对象(多个同种类型的对象)的对象,例如,三个工作表是同一类型的对象,可以用“工作表”来称呼它们,“工作表”为集合名称。

只要集合中发生变化,集合中的对象的位置就可能发生变化;因此,集合内任何特定对象的位置均可改变。

3.属性每个对象都有属性。

对象的属性可以理解为对象具有的特点,如颜色。

对象的属性还可以理解为对象包含的其它对象。

书写时,对象和属性之间用点(.)连接,对象在前,属性在后。

例如:Sheet1工作表的A1单元格,表示为Workheet(“heet1”).Range(“A1”)4.方法每个对象都有方法。

方法是指在对象上执行的某个动作,例如:打开工作簿、复制工作表、选中单元格,这里的打开、复制、选中即为在对象上执行的动作。

对象和方法之间用点(.)连接,对象在前,方法在后。

例如:选中A1单元格,表示为Range(“A1”).Select二、变量变量用来保存程序运行过程中需要临时保存的数据或对象。

声明变量就是指定变量的名称和可以存储的数据类型。

语法:Dim变量名A数据类型声明变量有如下4种语法:Dim变量名A数据类型本地变量Private 变量名A数据类型模块级变量Public变量名A数据类型公共变量Static 变量名A数据类型静态变量变量的作用域:决定该变量可以在哪个模块中使用。

本地变量:在一个过程中使用Dim或Static语句声明的变量,只有声明变量的语句所在的过程可以使用它。

(作用域为当前过程)模块级变量:在模块的第一个过程之前使用Dim或Private语句声明的变量,该模块里的所有过程都可以使用它。

VBA入门笔记

VBA入门笔记

VBA入门笔记VBA始终是我绕不过的坎,因此利用了一些休息的时间着重的学习了语法。

学习以及运行环境在Office2019 Excel中进行。

VBA和VB语法大致相同底层应该是有差异的,学习VBA之后可以一边看着文档一边尝试VB窗体开发或者操作数据库,个人感受VBA 入门比较简单,和其他语言一样,入门简单精通难对于我们这个群体而言也没有必要要求自己达到程序员水平;坊间传言VBA要过时了,未来office中的脚本语言将会被python 或者JavaScript替代,可能以后会,但是VBA庞大的用户群体使用习惯不是一朝一夕就能改变的,除过officen内置了VBA 还有WPS 大名鼎鼎的CAD 工控界上位机WINCC FT-View,所以VBA还暂时不会淘汰不过!Protal WinCC Unifled是西门子最新的SCADA软件,其脚本语言已变成了JavaScript,IT&OT的界限将逐渐模糊……VBA的基本数据类型比较常用的数据类型主要有整型和浮点型,字符串说明数据类型简化后的申明符号占用字节数字节型Byte 1整型Integer % 2长整型Long & 4单精度浮点型Single ! 4双精度浮点型Double # 8货币型Currency @ 8字符型String $ 每字符占1字节布尔型Boolean日期型Date 8变体型Variant 不确定对象型Object 4字符串string型是指一切可以打印的字符与字符串一个西文字符占用一个字节,一个中文占用2字节•边长字符串随着赋值的变化而改变长度的字符串变量•定长字符串字符变量在声明时候进行限制例如: Dim str As String*10 (类型关键字*10 )表示长度为10字节的定长字符串。

Variant可变(Variant)类型数据能够根据赋值对象的类型变化和转换角色。

不建议使用Variant型,容易产生混乱。

自定义数据类型类似C语言的结构体(PLC中的UDT),可以自定义数据模板使用案例如下1'定义用户数据结构2Public Type myType3 member01 As Integer4 member02 As String5 member03 As Single6 member04 As Boolean7End Type8910Sub ok()1112Dim x As myType'声明用户自定义类型变量 x1314'使用该结构体的成员此处的赋值可以使用with语句处理15x.member01 = 123416x.member02 = 'hello world'17x.member03 = 3.14159318x.member04 = True1920'输出成员中的值21MsgBox (x.member01 & x.member02 & x.member03 & x. member04)2223End Sub输出结果如下:枚举数据类型声明枚举时从代码的开头处声明前面加上Public关键字枚举成员默认从0开始向后排序,用户可以指定枚举成员的初始值1Public Enum color2 red '可以给第一个赋一个初始值后面成员会自动递增3 orange4 yello5 green6 blue7 indigo8 purple9End Enum1011Sub AAA()12Dim x As Integer, y As Integer13x = color.green14y = color.purple1516MsgBox (x & y)'输出 3 617End Sub变量声明符号常量的使用下例中用Pi来替代3.141593的值,系统会根据表达式的值决定Pi 的数据类型。

“VBA”学习笔记

“VBA”学习笔记

“VBA”学习笔记1、常用单句常用调试工具Debug.Print;MsgBox;立即窗口,本地窗口,监视窗口常用开头与结尾Dim tim As Date: tim = Timer '记录当前时间(0到开始到现在的时间,单位为秒)Application.ScreenUpdating = False '关闭屏幕更新Application.DisplayAlerts = False '关闭提示Call 调用程序MsgBox Format(Timer - tim, '程序执行时间为:0.00秒'), 64, '时间统计' '报告代码的执行时长Application.ScreenUpdating = True '恢复屏幕更新Application.DisplayAlerts = True '恢复提示清除内容和添加边框.ClearContents '删除当前区域值.Borders.LineStyle = 0 '删除当前区域边框.Borders.LineStyle = 1 '当前区域添加边框Error语句On Error Resume Next '当程序出错时继续执行下一句Err.Clear'清除错误值常用变量类型及简码Dim Ows As Worksheet, Orng As Range ,Dic1 As Object;Private ;Publicinteger % 短整型-32,768 到 32,767long &长整型-2,147,483,648 ---- 2,147,483,648贰拾亿single !单精度浮点型string $ 字符型字典常用Set Dic1 = CreateObject('scripting.dictionary') '创建字典对象,并赋值给Dic1Dic1.Item(Arr (i, 2)) = Dic1.Item(Arr (i, 2)) + Arr (i, 1) '汇总求和字典对象的方法有6个:Add方法、Keys方法、Items方法、Exists方法、Remove方法、RemoveAll方法。

VBA学习笔记

VBA学习笔记

第一课
(1)单元格的引用
代码:
Sub Rngselect()
Sheet1.range(“A1:F6,B1:C5”).select
End sub
效果:
解析:
Range 属性返回一个Range对象,该对象代表一个单元格或单元格区域,语法如下:Range(Cell1,Cell2)
参数Cell1是必须的,必须是“A1”样式引用的宏语言,可包括区域操作符(冒号)、相交区域操作符(空格)或合并区域操作符(逗号)。

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

可在区域中任一部分使用局部定义名称,如Range(“B2:LastCell”)。

其中LastCell 为已定义的单元格区域名称。

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

LastCell不只是你存在有数值的单元格,你曾经编辑过的单元格也算在内,虽然它现在无内容。

你可以利用编辑中的定位---最后一个单元格试试。

注意:
如果没有使用对象识别符,range属性返回活动表的一个区域,如果活动表不是工作表,则属性无效。

excelvba学习总结

excelvba学习总结

excelvba学习总结【篇一:01-excel vba 学习总结 - 基础知识】excel vba 学习总结 - 基础知识1.什么是vba?当前辈们使用excel的时候,他们惊奇的发现:excel那是相当的彪悍,几乎任何的数据分析与处理,它都可以近乎完美(实际上不可能完美)完成。

但是在使用的过程中,他们也同样发现,有很多工作是要重复做的。

如果要想自动重复的完成这些工作,必须要借助其他的编程语言和工具。

微软为了简化这个过程,开发了一个通用的自动化语言,这个就是vba(visual basic for application)。

所有支持vba的应用程序都可以方便的自动化执行某些固定的步骤,除此以外,支持vba的应用程序之间也可以通过vba这个平台进行互操作。

由于这里讨论的是excel中的vba,所以我后面的总结内容都是以excel中的vba为主。

vba是vb的一个子集,它们之间有些地方是不同的:? vb程序可以独立的部署和运行,但是vba程序不能离开宿主程序运行。

vb程序是一个编译型的语言,程序需要编译后执行,而vba程序是解释执行的脚本语言。

?2.vba能做什么?知道了vba是什么东东后,那么它能干什么呢?确定的说,vba基本能做一切excel能做的事,比如打印,生成报表,分析数据,生成图表等,这是vba最大的优点。

不需要额外实现这些标准的功能,只需要简单的调用就可以了,excel已经做好了一切准备。

除了这个好处,vba其实还能处理很多的任务:? 自定义excel的外观,菜单,工具栏等。

重复执行自动化操作。

操作文件和文件夹访问数据库并执行相关操作访问网络操作xml获取系统信息操作和自动化office其它组件(支持vba的其他公司的产品也可以操作) ? ? ? ? ? ? ?除了上述的任务外,vba还有很多其它的功能有待发掘。

3. vba与macromacro是一组excel能理解并执行的命令集合。

VBA笔记

VBA笔记

VBA应用- [读书笔记]1、取工作表名公式=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A 1))) 前提,文件要存盘。

或者定义名称shtname=right(get.document(1),LEN(get.document(1))-FIND("]",get.document(1)))然后A1输入=shtname2、把一张表里所有公式的引用在相对引用和绝对引用间切换右击工作表标签——查看代码——粘贴——运行Sub 相TO绝()Dim c As RangeFor Each c In Cells.SpecialCells(xlCellTypeFormulas)c.Formula = Application.ConvertFormula(c.Formula, xlA1, , xlAbsolute)NextEnd SubSub绝TO相()Dim c As RangeFor Each c In Cells.SpecialCells(xlCellTypeFormulas)c.Formula = Application.ConvertFormula(c.Formula, xlA1, , xlRelative, c)NextEnd Sub没有考虑数组公式,需要的话加判断3、Sub 列表名()For I = 1 To Sheets.CountCells(I, 1) = Sheets(I).NameNextEnd Sub4、Sub 清除单元格内容()Worksheets(1).UsedRange.SelectCells.Value = ""End Sub5、建立分类下拉列表填充项我们常常要将企业的名称输入到表格中,为了保持名称的一致性,利用“数据有效性”功能建了一个分类下拉列表填充项。

VBA学习笔记(2007.3.24)

VBA学习笔记(2007.3.24)

VBA学习笔记----谢勋圣一、单元格在VBA的表示方法: (1)二、工作表在VBA中表示方法:sheets("工作表名") (1)三、区域的表示方法:RANGE(CELLS(),CELLS()) (1)四、清除按钮代码表示方法:Range("A1:A22").ClearContents (1)五、对话框的表示方法: (1)2、三键选择对话框: (1)3、两键选择对话框: (2)六、编程中调用自定义函数的表示方法:Application.CountIf (2)七、把打开的某个工作设为当前工作薄的表示方法: (2)八、一次新建多个工作薄并存盘的表示方法: (2)九、关闭工作薄的表示方法: (3)十、颜色的表示方法: (3)十一、名称和标志 (3)1、名称: (3)2、标志: (4)十二、Visual Basic 常数 (5)1、Miscellaneous 常数 (5)2、Keycode 常数 (5)3、MsgBox 常数 (10)十三、Call 语句 (12)1、语法 (13)2、说明 (13)3、Call 语句示例 (13):=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _ (19)十四、Excel VBA编程的常用代码 (21)1、使用Dim语句 (21)2、强制声明变量 (21)3、声明常数 (21)4、选择当前单元格所在区域 (21)5、返回当前单元格中数据删除前后空格后的值 (21)6、单元格位移 (22)7、给当前单元格赋值 (22)8、给指定单元格赋值 (22)9、隐藏工作表 (22)10、打印预览 (22)11、得到当前单元格的地址 (23)12、得到当前日期及时间 (23)13、保护工作簿 (23)14、取消保护工作簿 (23)15、给活动工作表改名为"liu" (23)16、打开一个应用程序 (23)17、增加一个工作表 (23)18、删除活动工作表 (23)19、打开一个工作簿文件 (23)20、关闭活动窗口 (23)21、单元格格式 (23)22、With 语句 (24)23、清除单元格 (24)24、返回选定区域的行数 (24)25、返回选定区域的列数 (24)26、返回选定区域的地址 (24)27、忽略所有的错误 (24)28、遇错跳转 (24)29、删除一个文件 (24)30、定制自己的状态栏 (24)31、恢复自己的状态栏 (24)32、用代码执行一个宏 (24)33、滚动窗口到a1的位置 (25)34、定制系统日期 (25)35、返回当天的时间 (25)36、inputbox<输入框> (25)37、得到一个文件名 (25)38、打开zoom对话框 (25)39、激活字体对话框 (25)40、打开另存对话框 (25)十五、两个层面运行宏的方法 (25)十六、DblClick 事件 (27)1、语法 (27)2、说明 (27)3、DblClick 事件、CanPaste 属性、Paset 和Copy 方法示例 (28)十七、BeforeDragOver 事件 (30)十八、BeforeDropOrPaste 事件 (33)十九、Change 事件 (35)二十、Click 事件 (37)二十一、Enter、Exit 事件 (39)二十二、Error 事件 (40)二十三、KeyDown 和KeyUp 事件 (41)二十四、KeyPress 事件 (43)二十五、MouseDown 和MouseUp 事件 (45)二十六、MouseMove 事件 (47)二十七、晴雨表 .......................................................................................................... 错误!未定义书签。

VBA语法自学笔记

VBA语法自学笔记

VBA语法VBA语法 (1)1.声明变量 (3)1.1.Dim 变量名 As 数据类型 (3)1.2.Private 变量名 As 数据类型 (3)1.3.Public 变量名 As 数据类型 (3)1.4.Static 变量名 As 数据类型 (3)2.变量赋值 (4)2.1.Let 变量名称=要存储的数据 (4)2.2.Set 变量名称=要存储的对象名称 (4)3.类型声名符 (4)3.1.Integer % (4)3.2.Long & (4)3.3.Single ! (4)3.4.Double # (4)3.5.Currency @ (4)3.6.String $ (4)4.变量作用域 (4)4.1.单个过程 (4)4.2.单个模块 (4)4.3.所有模块 (4)5.数组 (4)5.1.Public/Dim 数组名称(a to b) as 数据类型 (4)5.2.Dim 数组名称() as 数据类型 (4)5.3.Array与Split函数创建数组 (4)5.4.UBound与LBound函数 (4)5.5.将数组数据写入单元格 (5)6.声明常量 (5)6.1.Const 常量名称 As 数据类型=存储在常量中的数据 (5)7.控制程序执行的基本语句 (5)7.1.if then else (5)7.2.select case (5)7.3.for next (5)7.4.for each next (5)7.5.do while (5)7.6.do until (5)7.7.go to (5)7.8.with (5)8.过程的调用 (5)8.1.直接引用过程名 (5)8.2.使用关键字call+过程名调用 (5)8.3.使用application对象的run方法 (5)9.Excel常用对象 (5)9.1.Application对象 (5)9.1.1.application.screenupdating=true/false (5)9.1.2.application.displayalerts=true/false (6)9.1.3.application.worksheetfunction (6)9.1.4.定义子对象的位置 (6)9.2.workbooks调用对象语句 (6)9.2.1.Range("b2") = Range("b3") = ThisWorkbook.PathRange("b4") = ThisWorkbook.FullName (6)9.2.2.workbooks add Template="模板带地址名称" (6)9.2.3.workbooks open="文件带地址名称" (6)9.2.4.workbooks save/as save 保存和另存,另存要注明地址 (6)9.2.5.workbooks close workbooks("book1") close 关闭所有和一个的区别 (6)9.3.worksheets调用对象 (6)9.3.1.worksheets add(before after count)添加一个工作表 (6) 为工作表命名 (6)9.3.3.worksheets("sheet1").delete 删除工作表 (6)9.3.4.worksheets.select/active 激活工作表 (6)9.3.5.worksheets(1).copy 复制活动工作簿到新的工作簿中 (6)9.3.6.worksheets(1).move上同 (6)9.3.7.worksheets(1).visible=fales worksheets(1).visible=xlSheetHiddenworksheets(1).visible=0 (6)9.3.8.worksheets(1).visible=xlSheetVeryHidden worksheets(1).visible=2 (7)9.3.9.worksheets(1).visible=true worksheets(1).visible=xlSheetVisibleworksheets(1)=1 worksheets(1)=-1 (7)9.3.10.worksheets.count统计有几张工作表 (7)9.4.range对象的属性 (7)9.4.1.offset(参数1,参数2),通过两个参数可以对指定区域进行偏移 (7)9.4.2.resize(参数1,参数2),以指定区域为中心扩充或缩小区域 (7)9.4.3.worksheets对象的usedrange属性,edrange.select 返回使用单元格的矩形区域 (7)9.4.4.range对象的CurrentRegion属性,range("B5").CurrentRegion.select 返回以range对象为中心的连续矩形区域 (7)9.4.5.range对象的end属性,end参数: xltoleft,xltoright,xlup,xldown 79.4.6.单元格的value、rows、columns、count、address属性 (7)9.4.7.源单元格区域.Copy/Cut Destination:=目标单元格 (7)10.分支主题 10 (7)Option Explicit (7)1.声明变量参见:Option Explicit1.1.Dim 变量名 As 数据类型1.2.Private 变量名 As 数据类型1.3.Public 变量名 As 数据类型1.4.Static 变量名 As 数据类型2.变量赋值2.1.Let 变量名称=要存储的数据2.2.Set 变量名称=要存储的对象名称3.类型声名符3.1.Integer %3.2.Long &3.3.Single !3.4.Double #3.5.Currency @3.6.String $4.变量作用域4.1.单个过程4.2.单个模块4.3.所有模块5.数组5.1.Public/Dim 数组名称(a to b) as 数据类型5.2.Dim 数组名称() as 数据类型5.3.Array与Split函数创建数组5.4.UBound与LBound函数5.5.将数组数据写入单元格6.声明常量6.1.Const 常量名称 As 数据类型=存储在常量中的数据7.控制程序执行的基本语句7.1.if then else7.2.select case7.3.for next7.4.for each next7.5.do while7.6.do until7.7.go to7.8.with8.过程的调用8.1.直接引用过程名8.2.使用关键字call+过程名调用8.3.使用application对象的run方法9.Excel常用对象9.1.Application对象9.1.1.application.screenupdating=true/false9.1.2.application.displayalerts=true/false9.1.3.application.worksheetfunction9.1.4.定义子对象的位置9.2.workbooks调用对象语句9.2.1.Range("b2") = Range("b3") = ThisWorkbook.PathRange("b4") = ThisWorkbook.FullName9.2.2.workbooks add Template="模板带地址名称"9.2.3.workbooks open="文件带地址名称"9.2.4.workbooks save/as save 保存和另存,另存要注明地址9.2.5.workbooks close workbooks("book1") close 关闭所有和一个的区别9.3.worksheets调用对象9.3.1.worksheets add(before after count)添加一个工作表 为工作表命名9.3.3.worksheets("sheet1").delete 删除工作表9.3.4.worksheets.select/active 激活工作表9.3.5.worksheets(1).copy 复制活动工作簿到新的工作簿中9.3.6.worksheets(1).move上同9.3.7.worksheets(1).visible=falesworksheets(1).visible=xlSheetHiddenworksheets(1).visible=09.3.8.worksheets(1).visible=xlSheetVeryHiddenworksheets(1).visible=29.3.9.worksheets(1).visible=trueworksheets(1).visible=xlSheetVisibleworksheets(1)=1worksheets(1)=-19.3.10.worksheets.count统计有几张工作表9.4.range对象的属性9.4.1.offset(参数1,参数2),通过两个参数可以对指定区域进行偏移9.4.2.resize(参数1,参数2),以指定区域为中心扩充或缩小区域9.4.3.worksheets对象的usedrange属性,edrange.select返回使用单元格的矩形区域9.4.4.range对象的CurrentRegion属性,range("B5").CurrentRegion.select返回以range对象为中心的连续矩形区域9.4.5.range对象的end属性,end参数:xltoleft,xltoright,xlup,xldown9.4.6.单元格的value、rows、columns、count、address属性9.4.7.源单元格区域.Copy/Cut Destination:=目标单元格10.分支主题 10Option Explicit参见:声明变量。

VBA学习笔记

VBA学习笔记

EXCEL之VBA 学习笔记姓名:刘磊时间:2015年9目录第一章VBA基础知识 (3)第二章工作簿以及工作表的操作 (9)第三章:单元格区域操作 (14)第四章:事件程序: (37)第五章:VBA数组 (45)第一章VBA基础知识1:代码帮助:F12:代码换行:下划线+空格+回车3:.常用代码操作excel中的对象(1)、工作簿(Workbooks)Workbooks(N)第N个工作簿Workbooks ("工作簿名")ActiveWorkbook 活动工作簿ThisWorkBook 代码所在工作簿(2)、工作表(Worksheets)Sheets(N) 第N个工作表Sheets("工作表名")SheetN 第N个工作表ActiveSheet 活动工作表worksheets 与Sheets的区别(3)、单元格(cells)Range ("单元格地址")Cells(行号,列号)[A1]单元格简写Activecell 活动单元格Selection 当前被选取的区域4:常量与变量(1.)常量:常量是定义了之后就不做变化了。

常量定义格式:Const 常量名= 常量表达式(2).变量:在定义之后还能再次赋值变量定义格式:Dim 变量As 变量类型5:数据类型(1.)VBA中的常见数据类型:类型注释简写占用内存Integer 整型% 2ByteSingle 单精度! 4ByteDouble 双精度# 8ByteLong 长整型& 4ByteString 字符型$ 定长或变长( 变长字符串最多可包含大约20 亿( 2^31)个字符。

定长字符串可包含1 到大约64K ( 2^16 ) 个字符。

)Currency 货币型@ 8Byte6:if条件语句1.单行形式1(If...Then)If 条件判断Then 条件成立结果注意在单行形式中,按照If...Then 判断的结果也可以执行多条语句。

VBA学习笔记2

VBA学习笔记2

VBA学习笔记2 ⾃动计算出Gross Demand前⾯⼀次已经做成了BoM数据的汇总,然后MPS就⽐较简单了,接下来的⼀步就是由BoM的透视表和MPS这两张表⾃动计算出Gross Demand。

代码如下,⽐较外⾏的代码,但是可以实现我要的功能了。

Sub GrossDemand()Dim c, d, e, rowend, columnend As Variantc = Sheets("sheet1").Range("a65536").End(xlUp).Row - 1 = "Gross Demand"Sheets("sheet1").Range("a4:a" & CStr(c)).CopyThisWorkbook.Sheets("Gross Demand").ActivateRange("a1:a" & CStr(c - 3)).SelectActiveSheet.Pasted = Sheets("MPS").Range("b1").End(xlToRight).ColumnSheets("MPS").ActivateRange(Cells(1, 2), Cells(1, d)).CopySheets("Gross Demand").ActivateRange(Cells(1, 2), Cells(1, d)).SelectActiveSheet.PasteEnd SubSub mmult1()Dim MaxBomRow, MaxBomColumn, MaxMPSRow, MaxMPSColumn As VariantMaxBomRow = Sheets("sheet1").Range("a65536").End(xlUp).Row - 1MaxBomColumn = Sheets("sheet1").Range("a5").End(xlToRight).Column - 1MaxMPSRow = Sheets("MPS").Range("a65536").End(xlUp).RowMaxMPSColumn = Sheets("MPS").Range("b1").End(xlToRight).ColumnThisWorkbook.Sheets("Gross Demand").ActivateRange("b2").currentregion.SelectSelection.Offset(1, 1).Resize(Selection.Rows.Count - 1, Selection.Columns.Count - 1).SelectApplication.CutCopyMode = FalseSelection.FormulaArray = "=MMULT(Sheet1!R5C2:R" & CStr(MaxBomRow) & "C" & CStr(MaxBomColumn) &",MPS!R2C2:R" & CStr(MaxMPSRow) & "C" & CStr(MaxMPSColumn) & ")"End Sub简单来说就是⼀个MMULT矩阵公式的扩充,主要的功能如下:第⼀个程序1. ⾃动创建 Gross Demand的Worksheet,2. 将BoM表的第⼀列Copy到Gross Demand的第⼀列3. 将MPS表的第⼀列Copy到Gross Demand的第⼀⾏第⼆个程序1.找出BoM和MPS⾥⾯合适的区域相乘并将结果放到Gross Demand对应的区域。

VBA入门教程

VBA入门教程

VBA入门教程VBA入门教程2007年03月24日星期六 12:371.1 VBA是什么直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用EXCEL的宏语言来使EXCEL自动化,使用WORD BASIC使WORD自动化,等等.微软决定让它开发出来的应用程序共享一种通用的自动化语言--------Visual Basic For Application(VBA),可以认为VBA是非常流行的应用程序开发语言VASUAL BASIC 的子集.实际上VBA是"寄生于"VB应用程序的版本.VBA和VB的区别包括如下几个方面:1. VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(EXCEL等)自动化2. VB具有自己的开发环境,而VBA必须寄生于已有的应用程序.3. 要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(*.EXE),而VBA开发的程序必须依赖于它的"父"应用程序,例如EXCEL.尽管存在这些不同,VBA和VB在结构上仍然十分相似.事实上,如果你已经了解了VB,会发现学习VBA非常快.相应的,学完VBA会给学习VB打下坚实的基础.而且,当学会在EXCEL中用VBA创建解决方案后,即已具备在WORD ACCESS OUTLOOK FOXPRO PROWERPOINT 中用VBA创建解决方案的大部分知识.* VBA一个关键特征是你所学的知识在微软的一些产品中可以相互转化.* VBA可以称作EXCEL的"遥控器".VBA究竟是什么?更确切地讲,它是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案.此外,如果你愿意,还可以将EXCEL用做开发平台实现应用程序.1.2 EXCEL环境中基于应用程序自动化的优点也许你想知道VBA可以干什么?使用VBA可以实现的功能包括:1. 使重复的任务自动化.2. 自定义EXCEL工具栏,菜单和界面.3. 简化模板的使用.4. 自定义EXCEL,使其成为开发平台.5. 创建报表.6. 对数据进行复杂的操作和分析.用EXCEL作为开发平台有如下原因:1. EXCEL本身功能强大,包括打印,文件处理,格式化和文本编辑.2. EXCEL内置大量函数.3. EXCEL界面熟悉.4. 可连接到多种数据库.用其他语言开发应用程序,一半的工作是编写一些基本功能的模块,包括文件的打开和保存,打印,复制等.而用EXCEL作为开发平台,则由于EXCEL已经具备这些基本功能,你要做的只是使用它.1.3 录制简单的宏在介绍学习VBA之前,应该花几分钟录制一个宏。

vba学习

vba学习

vba学习
我是个新手,刚接触VBA不久,买了赵老师的两本书学习了几天,但看不太明白这些代码,主要是不清楚思路和代码的运行规则。

自己编个东西花了N长时间,收效甚微,没办法只好慢慢请教学习。

哪位高手帮忙解释一下在过程列表框中这些名称的含义和用法(尽量详细点),感激不尽。

BeforeDragOver 控件拖放操作事件
BeforeDropOrPaste 控件添加事件
Change 控件更改事件
Click 控件单击事件
DblClick 控件双击事件
DropButtonClick 下拉列表事件
Error 控件错误事件
GotPocus 控件获取焦点事件
KeyDown 键盘按下触发事件
KeyPress ANSII键触发事件
KeyUp 键盘松开触发事件
LostFocus 控件失去焦点事件
MouseMove 鼠标按下事件
MouseUp 鼠标松开事件
建议学习VBA多看一些帮助,多动手做一些实例,这样才会学得更多
不看帮助的人永远成不了高手。

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

VBA学习笔记----谢勋圣一、单元格在VBA的表示方法: (1)二、工作表在VBA中表示方法:sheets("工作表名") (1)三、区域的表示方法:RANGE(CELLS(),CELLS()) (1)四、清除按钮代码表示方法:Range("A1:A22").ClearContents (1)五、对话框的表示方法: (1)2、三键选择对话框: (1)3、两键选择对话框: (2)六、编程中调用自定义函数的表示方法:Application.CountIf (2)七、把打开的某个工作设为当前工作薄的表示方法: (2)八、一次新建多个工作薄并存盘的表示方法: (2)九、关闭工作薄的表示方法: (3)十、颜色的表示方法: (3)十一、名称和标志 (3)1、名称: (3)2、标志: (4)十二、Visual Basic 常数 (5)1、Miscellaneous 常数 (5)2、Keycode 常数 (5)3、MsgBox 常数 (10)十三、Call 语句 (12)1、语法 (13)2、说明 (13)3、Call 语句示例 (13):=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _ (19)十四、Excel VBA编程的常用代码 (21)1、使用Dim语句 (21)2、强制声明变量 (21)3、声明常数 (21)4、选择当前单元格所在区域 (21)5、返回当前单元格中数据删除前后空格后的值 (21)6、单元格位移 (22)7、给当前单元格赋值 (22)8、给指定单元格赋值 (22)9、隐藏工作表 (22)10、打印预览 (22)11、得到当前单元格的地址 (23)12、得到当前日期及时间 (23)13、保护工作簿 (23)14、取消保护工作簿 (23)15、给活动工作表改名为"liu" (23)16、打开一个应用程序 (23)17、增加一个工作表 (23)18、删除活动工作表 (23)19、打开一个工作簿文件 (23)20、关闭活动窗口 (23)21、单元格格式 (23)22、With 语句 (24)23、清除单元格 (24)24、返回选定区域的行数 (24)25、返回选定区域的列数 (24)26、返回选定区域的地址 (24)27、忽略所有的错误 (24)28、遇错跳转 (24)29、删除一个文件 (24)30、定制自己的状态栏 (24)31、恢复自己的状态栏 (24)32、用代码执行一个宏 (24)33、滚动窗口到a1的位置 (25)34、定制系统日期 (25)35、返回当天的时间 (25)36、inputbox<输入框> (25)37、得到一个文件名 (25)38、打开zoom对话框 (25)39、激活字体对话框 (25)40、打开另存对话框 (25)十五、两个层面运行宏的方法 (25)十六、DblClick 事件 (27)1、语法 (27)2、说明 (27)3、DblClick 事件、CanPaste 属性、Paset 和Copy 方法示例 (28)十七、BeforeDragOver 事件 (30)十八、BeforeDropOrPaste 事件 (33)十九、Change 事件 (35)二十、Click 事件 (37)二十一、Enter、Exit 事件 (39)二十二、Error 事件 (40)二十三、KeyDown 和KeyUp 事件 (41)二十四、KeyPress 事件 (43)二十五、MouseDown 和MouseUp 事件 (45)二十六、MouseMove 事件 (47)二十七、晴雨表 .......................................................................................................... 错误!未定义书签。

1、This Workbook ........................................................................................ 错误!未定义书签。

2、Sheet1(工程晴雨表) ............................................................................... 错误!未定义书签。

3、模块 ........................................................................................................ 错误!未定义书签。

一、单元格在VBA的表示方法:1、方法1:Range("单元格地址") ,如Range("a1") 即为A1单元格。

2、方法2:CELLS(行,列),如CELLS(1,1)也为A1单元格,CELLS(2,1)为A2单元格。

二、工作表在VBA中表示方法:sheets("工作表名")如Sheets("sheet1")即为sheet1表。

三、区域的表示方法:RANGE(CELLS(),CELLS())1、单元格区域:Range(cells(1,1),cells(20,1))或Range("a1:a20");2、所有单元格区域:Cells.select;其中select是“选择”的意思;3、所有已使用的单元格区域:Sheets("sheet1").UsedRange.Select。

四、清除按钮代码表示方法:Range("A1:A22").ClearContents五、对话框的表示方法:1、一键选择对话框:对话框的表示方法:MsgBox "需要显示的文字"。

2、三键选择对话框:Sub 洪水计算()msg = MsgBox("是:打印成果" & "否:重新计算" & "取消:放弃打印" & Chr(13), vbYesNoCancel, "谢顺胜恭喜你计算正确!可以打印了,谢谢使用!")If msg = vbYes ThenCall 打印成果'调用打印成果Else: If msg = vbCancel Then Exit SubCall 洪水计算'调用洪水计算End IfEnd Sub3、两键选择对话框:Sub 洪水计算()msg = MsgBox("是:打印成果" & "否:重新计算"& Chr(13), vbYesNoCancel, "谢顺胜恭喜你计算正确!可以打印了,谢谢使用!")If msg = vbYes ThenCall 打印成果'调用打印成果Else: If msg = vbCancel Then Exit SubCall 洪水计算'调用洪水计算End IfEnd Sub六、编程中调用自定义函数的表示方法:Application.CountIf七、把打开的某个工作设为当前工作薄的表示方法:Workbooks("2.XLS").Activate八、一次新建多个工作薄并存盘的表示方法:For i = 10 To 13Workbooks.AddActiveWorkbook.SaveAs Filename:="c:\" & i & ".xls"Next九、关闭工作薄的表示方法:1、关闭所有打开的工作薄:Workbooks.close;2、关闭指定的工作薄:Workbooks("123.XLS").close。

十、颜色的表示方法:1、黑色:ColorIndex = 1;2、白色:ColorIndex = 2或0;3、红色:ColorIndex = 3;4、绿色:ColorIndex = 4;5、兰色:ColorIndex = 5;6、黄色:ColorIndex = 6;7、粉红色:ColorIndex = 7;8、青色:ColorIndex = 8;(下略)十一、名称和标志1、名称:为了直观地标识单元格或单元格区域,我们给它们一个名称,从而在公式或函数中直接引用。

例如:“B2:B46”区域存放着学生的物理成绩,求解平均分的公式一般是“=A VERAGE(B2:B46)”;在给B2:B46区域命名为“物理分数”以后,该公式就可以变为“=A VERAGE(物理分数)”,从而使公式变得更加直观。

选中要命名的单元格或单元格区域,鼠标单击编辑栏顶端的“名称框”,在其中输入名称后回车。

也可以选中要命名的单元格或单元格区域,单击“插入→名称→定义”菜单命令,在打开的“定义名称”对话框中输入名称后确定即可。

如果你要删除已经命名的区域,可以按相同方法打开“定义名称”对话框,选中你要删除的名称删除即可。

2、标志:由于Excel工作表多数带有“列标志”。

例如一张成绩统计表的首行通常带有“序号”、“姓名”、“数学”、“物理”等“列标志”(也可以称为字段),如果单击“工具→选项”菜单命令,在打开的对话框中单击“重新计算”选项卡,选中“工作簿选项”选项组中的“接受公式标志”选项,公式就可以直接引用“列标志”了。

例如“B2:B46”区域存放着学生的物理成绩,而B1单元格已经输入了“物理”字样,则求物理平均分的公式可以写成“=A VERAGE(物理)”。

(创建好的名称可以被所有工作表引用,而且引用时不需要在名称前面添加工作表名(这就是使用名称的主要优点),因此名称引用实际上是一种绝对引用。

但是公式引用“列标志”时的限制较多,它只能在当前数据列的下方引用,不能跨越工作表引用,但是引用“列标志”的公式在一定条件下可以复制。

从本质上讲,名称和标志都是单元格引用的一种方式。

因为它们不是文本,使用时名称和标志都不能添加引号。

)十二、Visual Basic 常数1、Miscellaneous 常数下列常数由Visual Basic for Applications 中的类型库定义,可用来在代码中的任何地方代替实际值:常数等于描述vbCrLf Chr(13) + Chr(10)回车符与换行符结合vbCr Chr(13)回车符vbLf Chr(10)换行符vbNewLine Chr(13) + Chr(10) or, on平台指定的新行字符;适用于当前平台the Macintosh, Chr(13)vbNullChar Chr(0)值为0 的字符vbNullString值为0 的字符串用来调用外部过程;与长度为零的字符串("") 不同vbObjectError-2147221504用户定义的错误号应当大于该值,例如:Err.Raise Number = vbObjectError + 1000 vbTab Chr(9)Tab 字。

相关文档
最新文档