Excel VBA 基于引用单元格的rangesdynamic动态范围函数实现问询
VBA 自定义动态范围函数
rangesdynamic 实现 实现步骤
- 按下
Alt + F11打开VBA编辑器 - 右键点击当前工作簿名称,选择「插入」-「模块」
- 将下方代码粘贴到模块中,保存即可使用
完整VBA代码
Function rangesdynamic(cellreference1 As Range, cellreference2 As Range) As Range ' 开启易失性,单元格内容/位置变动时自动更新范围 Application.Volatile ' 以两个传入单元格的坐标为起止点,返回连续范围对象 Set rangesdynamic = Range( _ Cells(cellreference1.Row, cellreference1.Column), _ Cells(cellreference2.Row, cellreference2.Column) _ ) End Function
使用说明
- 函数语法:
rangesdynamic(单元格引用1, 单元格引用2),返回值为连续Range对象,可直接传入所有需要范围参数的工作表函数 - 示例:统计A2到A10范围内值为Blue的单元格数量,公式可写为:
=COUNTIF(rangesdynamic(A2,A10),"Blue") - 两个参数无先后顺序要求,无论传入的引用位置谁上谁下、谁左谁右,都会自动生成包含两个引用的最小连续范围
- 仅支持传入单元格引用作为参数,直接传入数值、文本等非引用类型会触发参数类型错误
内容的提问来源于stack exchange,提问作者Joaopsm15
相关产品推荐
相关产品推荐

