VBA中的常用单元格引用方式
yuyutoo 2025-01-11 18:27 1 浏览 0 评论
诸君好~
VBA编程经常和“对象”打交道,其中最频繁的对象大概就是“单元格”了。今天我们就来聊一下单元格的各种引用方式,比如单个单元格、行列、连续和不连续的单元格区域、相连的和交叉的单元格区域等等……。
1,当前表所有的单元格
Cells.ClearContents 清空当前表所有单元格的内容
2,当前活动单元格
ActiveCell.Value = "看见星光"
活动单元格的值等于聪明可爱的看见星光。
3,单个单元格
例如A1单元格,最常用的方式有3种:
[a1]
Range("a1") 等同于 Range("a"&1)
Cells(1,1) 等同于 Cells(1,"a"),也就是说列也可以用字母表示。
三种方式里书写最简便的是[a1],运算效率最高的是cells(1,1),自带方法属性的是Range,最后,后两种方式支持使用变量。
4,连续单元格区域
比如选取A1:B10单元格区域……
[a1:b10]
Range("a1:b10") 等同于 Range("a" & 1 & ":b" & 10)
Range("a1","b10") 等同于 Range(cells(1,1),cells(10,2)
Range("a1").Resize(10,2),意思是以[A1]为起点,向下取10行,向右取2列……
第一种方法输入最简便,但不支持变量。第二种方法支持变量,但书写麻烦,第三种方法比较少用,第四种Resize常用,它也可搭配数组使用,以便将数组结果写入单元格区域。
5,不连续单元格区域
比如选取A1:A10,C1:C10,F1:F10三个单元格区域。
Range("a1:a10, c1:c10, f1:f10")
Union(Range("a1:a10"), Range("c1:c10"), Range("f1:f10"))
第一种方法是直接选取,但不支持变量,缺乏足够的灵活性。第二种union是必会语句,常用于搭配变量进行单元格高效批量操作,例如合并单元格处理等等。
6,行和列
比如第一行
Rows(1)
Range("a1").EntireRow
Rows("1:2") 第1和2行
比如第一列
Columns(1)
Columns("a:a")
Range("a1").EntireColumn
7,数据相连的单元格区域
例如以A1为点,数据相连的单元格区域。
Range("a1").CurrentRegion.Select
如果一个表格的数据足够规范(字段和记录不缺失),我们通常使用CurrentRegion来选取整份表格的数据。
8,当前表已使用的单元格区域
ActiveSheet.UsedRange.Select
这里需要说明的是,一张表格,即便从未输入任何数据,它依然存在UsedRange,也就是默认的A1单元格。因此……使用UsedRange并无法直接判断一张表格是否空白……
以下语句清除当前表格除了第一行以外的内容,常用于保存标题,清除明细记录。
ActiveSheet.UsedRange.Offset(1).ClearContents
9,交叉的单元格区域
比如选取当前表c:d列已使用的单元格区域,也就是C:D列和当前表已使用的单元格区域交叉的部分……
Intersect([c:d], ActiveSheet.UsedRange).Select
10,以某个单元格或区域偏移取值
例如已知变量K,并假定K=10
以A1单元格为起点,向下移动K行后的指定单元格:
[a1].Offset(K, 0).Select
注意,该语句选取A11单元格,不是A10。
Offset第二参数可以省略,省略意味为0,以上语句也可以简写成:
[a1].Offset(K).Select
另外,Offset参数可以为负数。
……
以A1单元格为起点,向下扩展K行1列后的指定单元格区域:
[a1].Resize(k, 1).Select
注意,该语句选取A1:A10单元格区域,不是A1:B10。
Resize第二参数也可以省略,但省略意味为1,以上语句可以简写成:
[a1].Resize(k).Select
Resize的参数不能为0(选取的单元格区域不可能是0行或0列)或负数。
11,特殊单元格定位
类似于基础操作中的定位功能(快捷键F5或Ctrl+G)。
比如定位一张表的错误值单元格:
Cells.SpecialCells(xlCellTypeFormulas, 16).Select
再比如快速删除A列单元格为空白的记录行:
Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
相关语句均可以通过录制宏获取,初学阶段并不需要刻意去记忆。
图文制作:看见星光
相关推荐
- 了解 SQL 语言特点、分类及规则
-
SQL语言概述SQL全称是结构化查询语言(structuredQueryLanguage),它是一种在关系型数据库中定义和操纵数据的标准语言。最早是由IBM的圣约瑟(Sanjose)研究...
- SQL的语言规范及分类详解
-
SQL:StructureQueryLanguage结构化查询语言,它是使用关系模型的数据库应用语言,由IBM上世纪70年代开发出来。后由美国国家标准局(ANSI)开始着手制定SQL标准,先后有S...
- 2分钟,快速认识什么是SQL
-
结构化查询语言,简称SQL,它是与关系数据库管理系统通信的黄金标准语言。今天就来一起快速认识一下什么是SQL,您可以通过以下的文字内容学习,也可以通过文末的视频学习,希望本文对您有所帮助。...
- SQL语言书写与规则详解
-
SQL语言SQL语言主要包含6个部分,什么是SQL语言?SQL语言被称之为结构化查询语言(StructuredQueryLanguage),它是关系型数据库的**标准语言[所有数据库厂商都要遵守S...
- SQL知识大全(一):数据库的语言分类你都知道吗?
-
点击上方蓝字关注我们今天是数据库语言分类的第一讲,主要会介绍数据库的四类语言,以及其语法,课程大纲详见脑图。...
- 数据查询语言SQL基本语法
-
SQL(StructuredQueryLanguage)即结构化查询语言,是用来管理和处理关系型数据库的标准计算机语言。其语法非常丰富,允许用户执行各种操作,包括但不限于查询、插入、更新和删除数据...
- SQL(structured query language)语言
-
SQL(structuredquerylanguage)关系数据库标准语言-SQL数据库是表的汇集,它用一个或多个SQL模型定义-基本表是实际存储在数据库中的表,视图是由若干个基本表或其他视图导出...
- SQL查询逻辑执行顺序:从FROM到LIMIT,步步解析
-
SQL(StructuredQueryLanguage)作为关系型数据库的标准语言,被广泛应用于数据查询和管理。虽然我们通常按照...
- SQL大宝剑-已燃尽所有SQL的理解
-
作者:京东物流向往一、背景从事数据开发将近四年,过程中有大量任务交接或阅读同事代码的场景。在这些场景中发现有些SQL读起来赏心悦目,可以一目了然地了解业务逻辑,一些复杂的业务需求实现方法也可以做到简...
- 《图解SQL:数据库语言轻松入门》
-
《图解SQL:数据库语言轻松入门》当初入手这本书的时候,我还是蛮有勇气的。毕竟我是一个除了数据库三个汉字会写之外,对数据库一无所知的人。当时我是想到了一个故事,才决定入手这本书的。这个故事你小时候应该...
- 【数据管理】数据库通用概念和常用SQL讲解
-
数据库是计算机领域的专业词汇,大部分人也许觉得和数据库没有交集。但其实每天,甚至连你自己都没有意识到,我们一直在使用数据库。淘宝购物挑选的商品信息,手机通讯录里面的联系人,微信发送的聊天记录等,数据都...
- 慢 SQL 分析与优化
-
背景介绍从系统设计角度看,一个系统从设计搭建到数据逐步增长,SQL执行效率可能会出现劣化,为继续支撑业务发展,我们需要对慢SQL进行分析和优化,严峻的情况下甚至需要对整个系统进行重构。所以我们往...
- SQL学习:实例讲解SQL必会的12个高频语句
-
在数据库查询中,总结了12个高频常用SQL语句,供大家参考学习:1、复制表结构,不包括数据(用于建立同一个表结构)...
- SQL语言包括哪几部分?每部分都有哪些操作关键字?
-
【死记硬背】SQL即StructuredQueryLanguage结构化查询语言,包括数据定义(DDL)、数据操纵(DML)、数据查询(DQL)、数据控制(DCL)、事物控制(TCL)和指针控制(...
- 数据库中sql语句大全
-
结构化查询语言(StructuredQueryLanguage)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)