Microsoft Excel VBA对象模型一览
- 格式:xls
- 大小:2.11 MB
- 文档页数:8
EXCEL VBA 常用操作对象汇总(办公室职场必备)导语:在VBA 中主要通过对EXCEL 表格对象的值以及属性进行修改,来达到我们想要的数据处理效果,今天着重介绍一下在日常工作中常用的几个EXCEl 对象。
熟练掌握这几个对象后,应对一些复杂的、庞大的数据处理工作时绰绰有余了。
常用的对象有这么几个:Workbooks 对象,简单的说,我们打开一个.xls 文件,就是一个Workbooks 对象。
主要又这几个用法:Workbooks.Open, 打开文件。
相当于“文件-> 打开”命令。
用法:Workbooks.Open FileName:="D: 今日头条?80502Excel 演示.xls"Workbooks.Open "D: 今日头条?80502Excel 演示.xls"Workbooks.Add 。
新建一个空白的工作簿,相当于“文件-> 新建”命令。
Workbooks.Save。
保存文件。
常用在关闭文件之前,功能和Ctrl+S 相同。
Workbooks.Close 。
关闭文件。
用法:Workbooks(1).CIose SaveChanges:=False关闭工作簿,并且不保存,改为True 则是保存并关闭。
下面是打开文件,然后修改文件,并保存。
Sub 打开修改文件并保存()Path = "D:今日头条Excel VBA 培训A计划.xls"Workbooks.OpenFileName:=PathSheets(1).ActivateCells(1, 1) = " 今日头条"Cells(1, 1) = " 宋体"ActiveWorkbook.SaveActiveWorkbook.CloseEnd Sub 小结,与Workbook 类似的两个对象还有ThisWorkbook 和ActiveWorkbook ,这两个用法基本和Workbooks 类似。
划重点!告诉你什么是ExcelVBA对象模型及如何引用对象excelperfect标签:VBA,对象模型要编写Excel VBA程序,必须知道对象。
可以认为,VBA基于面向对象编程,这意味着VBA程序主要是在处理(或操控)对象。
因此,我们要掌握ExcelVBA编程,必须理解:1.什么是对象2.如何操控VBA对象3.Excel VBA对象模型刚开始接触对象和对象模型的朋友,可能会被一些概念搞糊涂,这是正常的,随着不断地学习和使用,你的理解会越来越深入,这些概念也会逐渐清晰起来。
基本说来,Excel VBA对象模型是编程时可以使用的对象的层次结构,它使得引用要操控的对象更容易。
对象层次结构如下:层级1:在最顶端,只有一个对象。
层级2:层次结构顶部的对象包含的一些对象。
层级3:层级2中的对象可能包含的一些对象。
层级4:层级3中的对象可能包含的一些对象。
…对象可能包含其他对象。
该过程会重复,直到到达不包含任何其他对象的对象。
通常,层次结构顶部的对象是Application对象,即层级1的对象是应用程序本身。
对于Excel来说,Application对象就是Excel本身。
Application对象包含其他VBA对象。
Excel的Application对象包含的一些主要对象为:•AddIns,包含所有的加载项对象。
•Windows,包含应用程序所有Window对象。
•Workbooks,包含所有Workbook对象。
这些VBA对象中的每一个又包含其他对象。
例如,Workbook对象中包含的一些VBA对象如下:•Charts,包含Chart对象。
•Names,包含Name对象•VBProjects,代表打开的项目。
•Windows,包含指定Excel工作簿中的Window对象。
•Worksheets,包含Worksheet对象。
同样,这些VBA对象包含其他对象。
例如Worksheet对象包含下列VBA对象:•ChartObjects,包含ChartObject对象。
Excel-VBA常⽤对象(Application、Workbook、Worksheet、。
⼀、对象模型在VBE中“帮助(H)”——“Microsoft Visual Basic 帮助(H) F1”——“Visual Basic 语⾔参考”——“函数” 或者在VBE下快捷键“F1”地址:https:///zh-cn/office/vba/api/overview/excel/object-model⼆、Application对象(Excel顶层对象)1、ScreenUpdating属性是否控制屏幕更新,False表⽰关闭屏幕更新,True表⽰打开屏幕更新设置ScreenUpdating=False 关闭屏幕更新,将看不到程序的执⾏过程,可以加快程序的执⾏速度,让程序显得更直观,专业。
⽰例(为关闭屏幕更新下,会弹出对话框):Sub InputTest()Cells.ClearContents '清除表中所有数据Range("A1:A10") = 100MsgBox"刚才在A1:A10输⼊数值100,你能看到结果吗?"Range("B1:B10") = 200MsgBox"刚才在B1:B10输⼊数值200,你能看到结果吗?"End Sub⽰例(关闭屏幕更新,看不到执⾏过程,程序最终执⾏完成才能看到最终结果)Sub InputTest()Cells.ClearContents '清除表中所有数据Application.ScreenUpdating = False'关闭屏幕更新Range("A1:A10") = 100MsgBox"刚才在A1:A10输⼊数值100,你能看到结果吗?"Range("B1:B10") = 200MsgBox"刚才在B1:B10输⼊数值200,你能看到结果吗?"Application.ScreenUpdating = True'恢复屏幕更新End Sub2、DisplayAlterts属性是否显⽰警告对话框,False为不显⽰,True为显⽰Sub delSht()Dim sht As WorksheetApplication.DisplayAlerts = False'不显⽰警告信息For Each sht In WorksheetsIf = Then'判断sht是不是活动⼯作表sht.Delete '删除sht代表的⼯作表End IfNextApplication.DisplayAlerts = True'恢复显⽰警告信息End Sub3、EnableEvents属性启⽤或禁⽤事件,False为禁⽤(不让事件发⽣),True为启⽤什么是事件?能被Excel认识的⼀个操作动作,例如“打开⼯作簿”、“关闭⼯作簿”等⽰例1:编写⼀个程序,当选中⼯作表的单元格时,⾃动在单元格中写⼊该单元格的地址End Sub⽰例2:选中活动单元格,记录对应单元格地址,并将活动单元格向下移动⼀个单元格Private Sub Worksheet_SelectionChange(ByVal Target As Range)Target.Value = Target.AddressApplication.EnableEvents = False'禁⽤事件Target.Offset(1, 0).Select '选中活动单元格下⾯的⼀个单元格Application.EnableEvents = True'启⽤事件End Sub4、WorksheetFunction属性使⽤WorksheetFunction调⽤Excel内置函数⽰例1:统计A1:A50单元格中数值⼤于1000的单元格有多少个?Sub CountTest()Dim mycount As Integer, rng As RangeFor Each rng In Range("A1:B50")If rng.Value > 1000Then mycount = mycount + 1NextMsgBox"A1:B50中⼤于1000的单元格个数为:" & mycountEnd Sub⽰例2:统计A1:A50单元格中数值⼤于1000的单元格有多少个?使⽤COUNTIF函数Sub CountTest()Dim mycount As Integermycount = Application.WorksheetFunction.CountIf(Range("A1:B50"), ">1000")MsgBox"A1:B50中⼤于1000的单元格个数为:" & mycountEnd Sub5、给Excel梳妆打扮Excel⼯作表界⾯相关命令Excel界⾯6、Application的常⽤属性三、Workbook对象Workbook⼯作簿Workbooks⼯作簿集合1、怎么引⽤⼯作簿引⽤⼯作簿,就是指明⼯作簿的位置及名称,共有两种⽅式⽅式⼀:利⽤索引号引⽤⼯作簿,Workbook.Item(3),这⾥的Item可以省略,即Workbook(3)⽅式⼆:利⽤⼯作簿名称引⽤,Workbook("Book1")或Workbook("Book1.xls"),如果本地⽂件显⽰拓展名(且⽂件已经保存),则⽂件名必须带拓展名,否则会报错。
[分享]ExcelVBA编程系列之对象模型(2)初步理解和使用Excel对象模型[摘要]本文介绍了Excel对象模型及相关知识的基本概念,告诉您如何在VBA代码中使用与处理对象和集合。
主要包括Excel 对象模型的介绍,对象(集合)的概念和如何引用,设置对象变量,对象的方法和属性,对象的事件,用With…End With语句和For Each…Next语句处理对象和集合,以及如何获得帮助等基础知识。
说明对本文中的VBA语句和程序,您可以在将它们复制/粘贴或输入到您的VBE编辑器中的代码模块中后,进行测试。
具体方法为:在Excel工具菜单中选择“工具——宏——Visual Basic编辑器”命令或按Alt+F11组合键,打开VBE编辑器;然后再VBE编辑器中选择菜单“插入——模块”,将代码输入或粘贴到模块程序中,选择“运行宏”命令或按F5快捷键运行测试代码。
本文中的提示是您在编写或使用VBA代码时要注意的地方或给您的建议。
Excel对象模型简介在介绍Excel对象模型之前,让我们先来看一个简单的例子。
大多数工厂都是按这样的结构进行设置的:最上层为工厂总部,第二层次分为各个车间,在车间下面又分各班组。
就这样组织在一起,形成了一个工厂体系。
Excel对象模型与此相似,看起来复杂但实质上很简单清晰。
提示任何看起来复杂的东西其实都是由一些简单的部分组成的,或者其实它本身就比较简单。
Excel的对象模型是通过层次结构很有逻辑地组织在一起的,一个对象可以是其它对象的容器,可以包含其它的对象,而这些对象又包含其它的对象。
位于顶层的是Application对象,也就是Excel应用程序本身,它包含Excel中的其它的对象,如Workbook对象;一个Workbook对象包含其它一些对象,如Worksheet对象;而一个Worksheet对象又可以包含其它对象,如Range对象,等等。
这就是Excel的对象模型。
例如,Range对象在Excel对象模型中的位置为:Application对象Workbook对象Worksheet对象Range对象知道了某对象在对象模型层次结构中的位置,就可以用VBA代码方便地引用该对象,从而对该对象进行操作,并以特定的方式组织这些对象,使Excel能根据您的需要自动化地完成工作任务。
ExcelVBA解读(7):看看Excel的那些常用对象(续1)对于熟悉Excel对象模型的人来说,也许会觉得到目前为止所讲的内容都太小儿科了。
确实,我也有这种感觉。
讲解这些基础的东西对于有一定Excel VBA编程功底的人来说,太枯燥了!所以,多些图文,多些趣味,赶走枯燥。
同时,既然是完整的系列文章,我还是得从最简单的东西开始,基于不熟悉Excel VBA的朋友,从基本的知识点讲解,由浅入深,慢慢地让他们在无形中就会步入Excel VBA编程技术的殿堂。
另一方面,作为一个完整的系列,也应该从基础讲起,慢慢地开始涉及到更深入更实际的知识和实践。
这会给熟悉Excel VBA的朋友带来一个完整的框架,为他们理清思路的同时,也会给他们带来原来忽视的东西。
随着系列的深入,后面会越来越精彩!下面继续讲解上一节中未讲完的内容:Excel VBA编程中常常使用的那些对象到底是什么,如何在代码中表示它们。
Worksheet对象Worksheet对象代表工作表。
工作簿中的每个工作表都是一个Worksheet对象,所有Worksheet对象构成了Worksheets集合。
我们使用下面的这一张图来完整解析Worksheet对象,如下图1所示。
图1工作表的名称如图1所示,上面是Excel主界面,下面是VBE界面。
新建工作簿后,Excel为我们提供了1-3个默认工作表(Excel 2013中默认为1个工作表)。
工作表名称默认为Sheet1、Sheet2、Sheet3。
我们可以在Excel中更改工作表的名称,例如图1中在工作表名称中双击,将默认的名为“Sheet1”的工作表改名为“完美Excel”。
再看看VBE界面,在左侧的工程资源管理器的“Microsoft Excel 对象”文件夹下,Excel有几个工作表,就会有几个相对应的工作表代码模块,图1中是3个。
在代码模块标识中,例如Sheet1(完美Excel),左侧的“Sheet1”是相应工作表的对象名称,右侧括号中的“完美Excel”是工作表名称,也就是我们在Excel主界面工作表标签中看到的名称。