Microsoft Office VBA 学习日记(三):基础知识——对象

VBA入门1——基础 vba入门笔记 阅读详情

综述:
VBA对象也有它们可识别的属性和使用方法。工作表单元格是一个对象,它有一些可描述的功能(即它的属性),如它的位置、高度、所填充的颜色等。工作簿也是VBA对象,它有一些可用的功能(即它的方法),如打开、关闭工作簿,将图表或透视表添加到工作簿中。
在Excel 中,每天都会接触到Workbook对象、Worksheet对象和Range对象。你可能会将这些对象看成是Excel的全部,而不会真正认为它们是独立的。然而,Excel 本质上是将这些对象看成一个名为Excel对象模型的分层模型的部分。Excel对象模型是一组被清晰定义的对象,通过对象之间的关系可以将这些对象排列起来。

0.12.1 对象

  • Application: 代表整个应用程序(比如 Excel),是所有对象的根。
  • Workbook: 代表一个 Excel 工作簿。
  • Worksheet: 代表工作簿中的一个工作表。
  • Range: 代表工作表上的一个单元格或一系列单元格。
  • Chart: 代表一个图表。

在 Application对象中,Excel有 Workbook对象,在 Workbook对象中有Worksheet对象,在Worksheet对象中有Range对象。它们是分层结构中的所有对象。
要获得VBA中的特定对象,可遍历一下对象模型。例如,要获取 Sheet1中的单元格A1,需要输入下列代码:

Application.ThisWorkbook.Sheets("Sheet1").Range("A1").Select

大多数情况下,我们都清楚对象模型的层级,所以不需要把每一级都写出来。输入下述代码也可以得到单元格A1,因为Excel 会推断出你指的是活动工作簿和活动工作表:

 Range("A1").Select

0.12.2 属性

属性本质上就是对象的特征。房子会有颜色、面积、房龄等。有些属性可以改变——如房子的颜色。有些属性就不能修改——如房子的建成年份。
同样,Excel中的对象(如Worksheet对象)的表名属性可以改变,但Rows.Count行属性就不能改变。
通过引用某个对象及其属性就可以引用对象的属性了。例如,你可以通过改变工作表的Name属性来改变工作表的名称。

在这个例子中,将 Sheet1重命名为MySheet:

sheets(" Sheet1").Name="Mysheet"

有些属性是只读的,这意味着你不能直接给它赋值,比如,单元格的Text属性。Text属性直接给单元格指定了格式化了的值,你不能重写或修改。
有些带有参数的属性可以进一步指定属性的值。比如,下面这行代码就使用 RowAbsolute和ColumnAbsolute变量将单元格A1的Address属性返回为绝对引用(SA$1):

MsgBoxRange("A1").Address(RowAbsolute:=True,ColumnAbsolute:=True)

0.12.2.1 为活动对象指定属性

在使用 Excel 时,一次只能激活一个工作簿。在被激活的工作簿中,一次也仅能激活一个表。如果该表是工作表,就只有一个单元格是活动单元格(即使选中了多个单元格区域也是如此)。对活动工作簿、活动工作表和活动单元格有所了解后,将发现VBA还提供了引用这些活动对象的简便方法。
这种引用对象的方法非常有用,因为你不必知道所要操作的具体工作簿、工作表以及单元格区域。通过利用Application对象的属性,VBA可以轻松引用对象。例如,Application对象有一个ActiveCell 属性,可以返回对活动单元格的引用。下列指令将值1赋给了活动单元格:

ActiveCell.Value = 1

注意,在上述例子中,我们忽略掉了对Application对象和对活动工作表的引用,因为这两者都是默认的。如果该活动表不是工作表的话,这条指令就会失败。例如,如果激活图表工作表再让VBA执行这条语句,过程就会中断,出现一条错误消息。
如果在工作表中选定了区域,活动单元格就是所选区域内的一个单元格。也就是说,活动单元格永远是单个单元格(不可能是多个单元格)。
Application对象还有Selection属性,可以返回对任何所选对象的引用。这些对象可以是单个单元格(活动单元格)、一段区域内的单元格,或者类似ChartObject、TextBos、Shape这样的对象。
在这里插入图片描述
下列指令虽然不清楚活动单元格的位置,但同样可以清除活动单元格的内容:

ActiveCell.ClearContents

下面这条指令可显示出活动工作表的名称:

MsgBox ActiveSheet.Name

如果想知道活动工作簿的名称和目录路径,可以使用如下语句:

MsgBox ActiveWorkbook.FullName

如果选中了工作表中单元格的区域,通过执行一条语句就可以用值填充这个区域的单元格。在下面的例子里,Application对象的Selection属性返回与所选单元格相对应的Range对象。这条指令简单地修改了这个Range对象的Value属性,其结果是用单个值填充了所选中的单元格区域:

Selection.Value=12

注意,如果选中了其他对象(如ChartObject或者Shape),上述语句就会生成错误,因为ChartObject对象和Shape对象没有Value属性。
不过,下列语句会将值12填充到在选中非 Range对象之前就已经选中的Range对象中。如果在帮助系统中查找RangeSelection属性,会发现该属性仅能用于 Window对象:

ActiveWindow .RangeSelection.Value =12

如果想知道活动窗口中选中了多少个单元格,则可以访问Count属性,具体如下所示:

MsgBox ActiveWindow.RangeSelection.Count

0.12.2.2 为活动对象使用方法

方法是可在对象上执行的动作。将方法当作动词会有助于你理解,比如你可以粉刷房子,在VBA中就可翻译成house.paint。
举个Excel方法的简单例子,Range对象的Select方法,如下所示:

Range("A1").Select

Range对象的Copy方法:

Range("A1").Copy

有些方法会带有参数,表明是如何应用它们的。例如,如果显式定义Destination参数,就可以更有效地使用Paste方法:

Activesheet.Paste Destination:=Range ( "B1")

0.12.3 集合

许多Excel对象都属于集合。例如,你的房子位于一个街区中,这个街区就是房子的集合。每个街区都位于城市中,这个城市就是街区的集合。Excel将集合看成对象本身。

在每个 Workbook对象中,都会有Worksheet集合。Worksheet,集合是一个可通过 VBA调用的对象。Workbook对象中的每个Worksheet对象都位于Worksheet集合中。

如果你想引用 Worksheet 集合中的一个 Worksheet对象,可以通过它在集合中的位置来引用它,如从1开始的索引号,或将它的名称作为引用文本。如果你在只包含了一个名为MySheet的工作表的工作簿中运行下面两行代码,会发现它们所做的事是一样的:

worksheets(1).select
worksheets("MySheet").Select

同理,如果活动工作簿中有两张工作表,分别名为 MySheet和 YourSheet,输入下列任意一行语句都可以引用第二个工作表:

worksheets(2).Select
worksheets("YourSheet").Select

如果你想引用某个不活动工作簿中的名为MySheet的工作表,就需要限定工作表的引用和工作簿的引用:

workbooks("MyData.xlsx"),worksheets( "MySheet").Select

0.12.4 Range对象

0.12.4.1 Range对象的属性

打开VB编辑器,单击菜单栏中的“帮助”“Microsoft Visual Basic for Application帮助”,将会进入到Microsoft Developer Network(MSDN)网站。在 MSDN上,搜索Range可以看到与Range对象相关的网页。你会看到Range对象有3个属性,可用来通过VBA处理工作表。

  • Worksheet或 Range类对象的Range属性
  • Worksheet对象的Cells属性
  • Range对象的Offset属性

未完待续。。。

【Excel VBA 从入门到出门】二、Excel VBA 简单使用 人们用 VBA 编写的大多数代码都是 `Sub` 和 `Function` 过程。因此,在本节中,我们将主要学习如何编写、编辑和运行它们。 阅读详情

相关推荐

从零开始学习VBA(一)

VBA基础内容

你隔壁的小王的博客 1139

Microsoft Office VBA 学习日记(二):基础知识——VB语言

快乐打工日记【香港】

RandPython的博客 2030

WPS文档加密全攻略:从原理到实战,守护你的数字隐私

数据加密是信息安全领域的核心技术,其原理是通过特定算法将明文信息转换为不可读的密文,确保即使数据被截获也无法直接解读。在办公场景中,文档加密技术能有效防止敏感信息泄露,保护个人隐私与商业机密。WPS Office作为广泛使用的办公软件,其内置的加密功能基于成熟的AES等对称加密算法,为用户提供了便捷可靠的文件保护方案。无论是设置打开密码实现基础防护,还是利用权限管理进行协同控制,理解其背后的安全逻辑都至关重要。掌握文档加密不仅能应对日常工作中的保密需求,更是提升个人数据安全意识、构建安全办公习惯的关键一步。

weixin_34007886的博客 357

VBA基本语法学习

我们在使用Excel的过程中,经常会有这样的情况,会按照相同的方法完成信息录入,表格格式调整,信息处理,表格保存等简单、重复操作。VBA的语法简单,学习门槛低。Office中的应用程序可以共享VBA语言,如果你掌握了Word中使用VBA的方法,那么在Excel、PPT中使用Excel将变得非常容易,可以减少大量不必要的重复性工作,提高工作效率。在单分支IF语句结构中,当IF表达式执行结果为True时,执行后面的语句组,当表达式执行结果为False时,则直接跳过后面的语句组,语句执行流程如下图所示。

GeeLoong`s Blog 4344

Outlook重复邮件清理:原理、工具与安全操作全指南

在数据管理与邮箱优化领域,重复数据删除是一项基础且关键的技术。其核心原理在于通过比对算法识别冗余项,常见技术包括基于哈希值的内容匹配、属性比对等。这项技术的核心价值在于释放存储空间、提升应用性能与数据检索效率,尤其适用于邮件归档、系统迁移等场景。本文聚焦于Microsoft Outlook环境,深入解析如何利用专业工具(如SysTools Outlook Duplicates Remover)安全高效地执行重复项清理。文章将结合PST文件结构解析与重复项判定逻辑,详细阐述从数据备份、扫描策略配置到结果审阅的

weixin_33811539的博客 438

Excel VBA:从入门到精通的完整教程

在本章中,我们将踏入VBA(Visual Basic for Applications)的世界,它是Microsoft Office应用程序的编程语言,用于自动化和扩展软件的功能。我们将介绍VBA的基本环境以及如何在其中工作。内置函数虽然方便,但在实际应用中,我们往往需要根据特定需求编写自定义函数。自定义函数能够使我们的代码更加灵活和可重用。创建自定义函数的第一步是声明函数本身以及任何需要的参数。上述代码定义了一个名为AddNumbers的函数,它接受两个Double。

weixin_35982453的博客 1万+

Microsoft Office VBA 学习日记(一):基础知识——编辑器

快乐打工日记【香港】

RandPython的博客 3582

电力工程师必看:GOOSE/SV/MMS三协议在智能变电站中的分工与联动实例

本文深入解析了智能变电站中GOOSE、SV、MMS三大核心通信协议的分工与协同机制。GOOSE协议作为过程层的“闪电信使”,负责毫秒级传输跳闸命令等事件信息;SV协议则传输精确同步的电流电压采样值流;而MMS协议作为站控层的“管理语言”,实现设备监控与数据管理。三者基于IEC 61850标准,在过程层、间隔层和站控层之间高效联动,共同构建了智能变电站稳定可靠的通信骨架。

jj890的博客 370

菜鸟学习日记:跟我一起学office2007之Excel【01开篇】

不知道大家在平时的工作中对于办公软件,尤其是Microsoft Office2007软件的运用多少。 自己工作一年了,换过不少的工作,在工作过的公司,有做信息统计的,有做OA系统的,有做国内一些项目的。这些工作中都会或多或少的用到office软件,由于自己在读书时贪玩,不主动。所有常常感觉自己知识不够--自定义为“菜鸟”。所以打算把这些知识能自己再学一遍做提高的全部学一遍。从office 200...

weixin_34303897的博客 188

ESP32编译卡在‘Cannot establish a connection to the component registry’?别急着重装,先试试这两个国内镜像配置

本文详细解析了ESP32编译过程中常见的‘Cannot establish a connection to the component registry’报错问题,并提供了国内镜像源的配置方案。通过对比Gitee、清华大学、阿里云和中科大等镜像源的性能,帮助开发者快速解决网络连接问题,提升编译效率。文章还包含手把手的配置教程和进阶技巧,适用于ESP-IDF开发环境的优化。

weixin_34088048的博客 341

freeswitch系列二 kamailio 5.0安装及实现kamailio集成freeswitch

kamailio是个纯粹的SIP服务器。本文介绍先如何在debian8下安装debian5.0,然后详细介绍如何实现使用kamailio做freeswitch均衡负载。kamailio同时实现做为代理服务器、注册服务器、重定向服务器。

不积跬步无以至千里; 不积小流无以成江海 1万+

亲身经历微软办公软件国际认证MOS考试

亲身经历微软办公软件国际认证MOS考试近日来,有很多朋友问了我关于MOS考试方方面面的问题,恰好前几天刚刚考完,在这里总结一下考试攻略,分享给大家.在这篇日记里,我将和大家讲述以下几个方面的内容:一,微软Office产品简介微软公司开发的Office产品,以其功能强大,体系完善而著称,是全球用户最多的办公套件;虽然除此以外,还有OpenOffice以及国内的金山WPS等同类...

weixin_34220963的博客 1309

软件设计师---UML

软件设计师---UML

我从不打没有准备的仗! 1万+

探索手写艺术:Davies的Office自动化书法助手

探索手写艺术:Davies的Office自动化书法助手 在这个数字化时代,找回手写的温度变得尤为珍贵。由开发者Davies精心打造的开源项目——“Maked by Davies”正是一扇通往模拟手写世界的大门。该项目不仅将传统与现代科技巧妙融合,更以一串简洁的代码,让每一份文档披上个性化的手写风格外衣,唤醒文档的温度,为办公和创意表达带来全新的维度。 技术剖析:简约而不简单 核心技术栈 Micr...

gitblog_00477的博客 512

大模型系列——Ollama-OCR 简明教程

Llama 3.2-Vision 是一个多模态大型语言模型,有 11B 和 90B 两种大小,能够处理文本和图像输入以生成文本输出。该模型在视觉识别、图像推理、图像描述和回答与图像相关的问题方面表现出色,在多个行业基准测试中优于现有的开源和闭源多模态模型。在本文中,我将介绍如何调用由 Ollama 运行的 Llama 3.2-Vision 11B 建模服务并使用实现图像文本识别 (OCR) 功能。

2401_84052244的博客 1万+

分布式协作方案:OpenClaw多节点部署与设备互联

主从架构或对等架构服务发现与注册机制负载均衡策略选择分布式任务队列优先级调度失败重试机制WebSocket实时通信数据同步引擎冲突解决策略健康检查机制故障自动转移数据复制与恢复通过分布式部署,OpenClaw可以支撑更大规模的业务场景,提供更稳定可靠的AI助手服务。在下一篇文章中,我们将深入探讨安全与权限管理的精细化策略。

gaoxiang_120的专栏 371

MOSS 2007应用日记(31)——如何用Excel 2007同步MOSS列表

在《MOSS 2007应用日记(30)——如何用Excel 2007发布列表》中,我们演示了如何将Excel 2007表格发布到MOSS列表,发布后的表格和可以和MOSS列表双向同步。 但是,当另一个用户登陆到MOSS列表后,会发现列表的任务窗格中并没有“导出并链接到Excel”一项。这是因为Excel 2007不支持和SharePoint列表进行同步。在Office 20...

weixin_33781606的博客 108

如何解除“无法完成操作 因为文件包含病毒或潜在垃圾软件”

当运行软件遇到“无法完成操作 因为文件包含病毒或潜在垃圾软件”时,如何解决?控制面板-系统和安全-Windows Defender防火墙-自定义设置,将专用网络及公用网络关闭。点击后,选择“病毒和威胁防护”-管理配置。进入安全中心后,选择“病毒和威胁防护”将需要排斥的选项输入后,保存配置即可。2:打开windows安全中心。

笔者从事电信媒体开发多年,愿意将多年的开发经验分享给同行 6万+

Outlook 2003命令行参数开关详解

启动 Microsoft Outlook 的命令是 Outlook.exe。命令行参数开关是正斜杠后跟开关名和开关具有的任何参数。开关的用法查找 Microsoft Outlook 可执行文件 Outlook.exe 并记下它的路径。例如,路径可能是 C:\Program Files\Microsoft Office\Office11\Outlook.e...

weixin_33857679的博客 433

EEMD算法原理及应用

本博客主要概括EEMD算法的背景、原理以及应用,利用EEEMD对信号进行分解,然后选择有用的IMF分量进行叠加以完成信号的重构,从而实现对信号降噪。本文配套的源代码见文中链接,可供大家免费下载。

总结论文中的算法并给出论文的复现代码 4万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

VBA完整学习笔记1-39集(共60集)

目录 第1集:宏与VBA 1什么是VBA,它有什么作用 2 VBA在哪里存放的?怎么运行的 3、什么是宏?宏和VBA有什么关系? 4、录制一个宏 5、编写第一个宏 第2集:VBA中的语句、对象、方法与属性 一、VBA属性 二、VBA方法 三、VBA对象 四VBA语句 第3集:循环语句 if判断语句 select判断 判断范围 第4集:判断语句 第5集:VBA变量 第6集:函数与公式 '一、在单元格中输入公式 '二、利用单元格公式返回值 '三、借用工作表函...

weixin_43957681的博客 2万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

VBA(学习笔记)

VBA 学习笔记

m0_65939803的博客 6136

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

VBA编程基础知识-提升工作效率

我们在使用Excel的过程中,经常会有这样的情况,会按照相同的方法完成信息录入,表格格式调整,信息处理,表格保存等简单、重复操作。VBA的语法简单,学习门槛低。Office中的应用程序可以共享VBA语言,如果你掌握了Word中使用VBA的方法,那么在Excel、PPT中使用Excel将变得非常容易,可以减少大量不必要的重复性工作,提高工作效率。在单分支IF语句结构中,当IF表达式执行结果为True时,执行后面的语句组,当表达式执行结果为False时,则直接跳过后面的语句组,语句执行流程如下图所示。

m0_53191230的博客 2521

VBA入门整理

VBA入门整理 什么是VBA VBA(Visual Basic for Application) 是Visual Basic的一种宏语言,主要用来扩展MicroSoft Office Excel软件的应用程序功能。 相关资料 VBA学习交流网址:http://www.excelhome.net/ 《excel_VBA基础入门》: https://vdisk.weibo.com/s/dE3...

ACGkaka的博客 3443

Excel VBA学习

首先,第一个问题,什么是 VBA?Visual Basic for Applications(VBA)是 VisualBasic 的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展 Windows 的应用程序功能,特别是Microsoft Office软件。以上是 VBA 的百科定义,说简单点,VBA 是运行在 Microsoft Office 软件之上,可以用来编写非软件自带的功能的编程语言。

qq_45303968的博客 1万+

VBA学习——1

Excel——VBA入门

星辰的博客 845
上一篇: Microsoft VBA Excel 一键写入和一键清除
下一篇: 不删除其代码的情况下模拟关闭或者禁止其他宏的消息提示
偷心伊普西隆
博客等级 码龄7年 511粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值