排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
2021年报告
2022年报告
年度数据库
2020年openGauss
2021年TiDB
2022年PolarDB
2023年OceanBase
首页
资讯
活动
大会
学习
课程中心
推荐优质内容、热门课程
学习路径
预设学习计划、达成学习目标
知识图谱
综合了解技术体系知识点
课程库
快速筛选、搜索相关课程
视频学习
专业视频分享技术知识
电子文档
快速搜索阅览技术文档
文档
问答
服务
智能助手小墨
关于数据库相关的问题,您都可以问我
数据库巡检平台
脚本采集百余项,在线智能分析总结
SQLRUN
在线数据库即时SQL运行平台
数据库实训平台
实操环境、开箱即用、一键连接
数据库管理服务
汇聚顶级数据库专家,具备多数据库运维能力
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
我的订单
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
资讯
活动
大会
课程
文档
排行
问答
我的订单
首页
专家团队
智能助手
在线工具
SQLRUN
在线数据库即时SQL运行平台
数据库在线实训平台
实操环境、开箱即用、一键连接
AWR分析
上传AWR报告,查看分析结果
SQL格式化
快速格式化绝大多数SQL语句
SQL审核
审核编写规范,提升执行效率
PLSQL解密
解密超4000字符的PL/SQL语句
OraC函数
查询Oracle C 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
首页
/
VBA中范围表达式的应用
VBA中范围表达式的应用
VBA语言専攻
2021-10-24
184
【
分享成果,随喜正能量】一个人年轻时候的容量比什么都重要,这决定了一个人生命的宽度,决定了你将来能够建立的格局。"灼灼其华,绚烂之极归于平淡",说的其实就是现在你的涉猎越广,就越能给你的未来无限可能性。居安思危,时刻考虑自己工作的可替代性!
《VBA经典应用69例》,是我推出第九套教程,教程是专门针对初级、中级学员在学习VBA过程中可能遇到的案例展开,这套教程案例众多,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家
在实际工作中要利用好VBA
。本套教程共三册六十九个专题,今日内容是教程的应用1:VBA中范围表达式的应用。
应用1
利用
VBA
中范围表达式表示工作表中的范围
在这个专题中,我将和大家一起从VBA的角度认识在Excel中选择范围的几个基本要素,然后,我将解决选择可变范围的方法。
1
在
Excel中选择单元格
在Microsoft Excel中选择一个单元格或一系列单元格来执行操作是最常见的情况之一,例如,为了复制和粘贴内容,我们需要执行下面的一系列步骤:
① 选择要复制的单元格
② 单击复制或者ctrl+c
③ 选择需要粘贴内容的单元格
④ 点击粘贴或者ctrl+v
在此过程中,我们可以选择连续行和列中的一个单元格或多个单元格。此连续选择称为范围"Range"。"Range"是一个非常重要的概念,通常通过左侧上角的开始单元的引用和右下角的末尾单元的引用来识别。例如,下图中Range为从 C2到E7,选择了此范围中的所有单元格。
2 Range Expression(
范围的表达式
)
VBA应用中提供了可用于选择单元格范围的两种表达式.
语法:
① Range(“
:
”)
② Range(Cells(
,
),Cells(
,
))
有了上面的语法表达式,我们可以把上图中的选择用下面的表达式来表达,我们假设这个范围是在名为"Sheet1"工作表上的选择:
第一种表达方式:Sheets("Sheet1").Range("C2:E7").Select
请注意上面的"C2:E7",字母用于表示列号,行由数字表示。在两个单元格引用之间有一个冒号,整个参数被包裹在双引号中。
第二种表达方式:Sheets("Sheet1").Range(Cells(2, 3), Cells(7, 5)).Select
在这种情况下,不用双引号表示范围。这种表示使用行和列号表示单元格来表达引用,中间用的是逗号。
3
范围表达式中的可变变量
我们可以利用上面的两种方案来选择一系列单元格,这种范围的表达式中形成该范围的起始和终止两个单元格是确切的地址。现在,我们来研究一下如何在同一表达式中插入动态或不确定的行或列编号。
在范围表达式中完成可变行数的设置是使用双引号和符号“&”的连结。下面我将通过几个例子给大家说明:
实例一:将一系列单元格着色到动态变化的最后一行
在下面的示例中,我们先查找最后使用的行,并在范围表达式中动态使用该行。此示例将选定的单元格涂上绿色。
下面先看我给出的代码:
Sub mynzB() '动态单元格范围的选择,并着色
Dim lastRow As Integer
'初始化变量
lastRow = ActiveSheet.UsedRange.Rows.Count
'使用范围表达式中的变量来选择
Sheets("Sheet1").Range("A2:C" & lastRow).Select
'将选定的单元格涂成绿色
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5296274 '绿色
End With
End Sub
代码截图:
代码解读:以上代码利用变量lastRow 来获得一个行数,这个行数是通过当前活动工作表中UsedRange.Rows属性来获得,这个数量就是我们期望得到的。然后利用"A2:C" & lastRow来获得这个单元格的区域。
代码的运行效果:
实例二:将特定颜色应用到选定单元格的范围
下面的例子是另一种使用单元格范围表达式执行操作的示例。在这里,我们将更改所选单元格的字体颜色。
下面看我给出代码:
Sub mynzC() '将特定颜色应用到选定单元格的范围
Dim row_num As Integer
'利用InputBox初始化变量
row_num = InputBox("Enter the row number")
'使用range表达式中的变量仅选择选择前行的数据,而不选择头部
Sheets("Sheet1").Range(Cells(2, 1), Cells(row_num, 3)).Select
'将选定单元格的字体涂成红色
With Selection.Font
'返回或设置
应用的颜色,红色
.ColorIndex = 3
End With
End Sub
代码截图:
代码的解读:上面的代码利用
row_num
变量来设置单元格的范围,然后利用范围表达式的第二种方案来获得此范围的选择,并改变字体的颜色。
下面看输出的结果:
实例三:将单元格范围字体加粗
下面的例子是使用单元格范围表达式执行操作的示例。在这里,我们将所选单元格的字体加粗。
下面看我给出代码:
Sub mynzD() '将单元格范围字体加粗
Dim row_num As Integer
row_num = InputBox("Enter the row number")
'使用范围表达式中的变量仅选择从用户输入的行数开始的前3行数据
Sheets("Sheet1").Range(Cells(row_num, 1), Cells((row_num + 3), 3)).Select
'字体加粗 "Bold"
Selection.Font.Bold = True
End Sub
代码截图:
代码解读:上面的代码利用Range(Cells(row_num, 1), Cells((row_num + 3), 3))设置单元格的范围为选定的行号开始直到下面的三行。
代码的执行效果:
结论: VBA中范围表达式对于Excel中的计算和格式化单元格非常有用。不仅对于固定行号,还可以动态插入列号,以便充分利用表达式。换句话说,我们可以使用一个在表达中保留数字的变量,而不是直接硬编码引用。
今日内容回向:
1 范围表达式有哪两种方式?
2 范围表达式中对于动态边界如何设置?
本讲内容参考程序文件:应用001.xlsm
我20多年的VBA实践经验,全部浓缩在下面的各个教程中:
vba
单元格引用
单元格
num
文章转载自
VBA语言専攻
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨