ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何自定义获取行/列中有数据单元格的行/列的最大下标值的函数?

如何自定义获取行/列中有数据单元格的行/列的最大下标值的函数?

作者:绿色风 分类: 时间:2022-08-17 浏览:100
楼主
kevinchengcw
Q: 在公式操作中也经常需要判断行/列中有数据的单元格的最大下标,有什么好办法呢?
A: 通过VBA可以很容易的得到对应行或列的有数据单元格的最大下标值,基于此,我们可以通过自定义函数的方式来实现:
步骤1:打开要利用该自定义函数的工作簿,按Alt+F11进入VBA编辑器,插入模块。
步骤2:复制下述代码到模块中:
1. 判断行/列最大下标的二合一函数,通过参数逻辑值isRow来决定执行判断行还是列标最大值,如果isRow为假或省略,则返回所在行的列标最大值,否则返回所在列的行标最大值
用法:=MaxRC(1) 或 =MaxRC(True) 为返回所在列的行标最大值, =MaxRC(0) 或 =MaxRC(False) 或 =MaxRC() 为返加所在行的列标最大值
  1. Function MaxRC(Optional isRow As Boolean) As Integer
  2. MaxRC = IIf(isRow = False Or IsMissing(isRow), Cells(Application.Caller.Row, Rows(Application.Caller.Row).Cells.Count).End(xlToLeft).Column, _
  3.             Cells(Columns(Application.Caller.Column).Cells.Count, Application.Caller.Column).End(xlUp).Row)
  4. Application.Volatile
  5. End Function


2.仅判断所在列行标最大值的函数,用法:在单元格输入 =MaxRow() 即可
  1. Function MaxRow() As Integer
  2. MaxRow = Cells(Columns(Application.Caller.Column).Cells.Count, Application.Caller.Column).End(xlUp).Row
  3. Application.Volatile
  4. End Function


3.仅判断所在行的列标最大值的函数,用法:在单元格输入 =MaxCol() 即可
  1. Function MaxCol() As Integer
  2. MaxCol = Cells(Application.Caller.Row, Rows(Application.Caller.Row).Cells.Count).End(xlToLeft).Column
  3. Application.Volatile
  4. End Function


以上函数的行列总数均采用实时判断获得,故通用性较好
2楼
成就滋味
学习~~~~
3楼
后知
嗯嗯 我来实践下  很强大         

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap