当前位置: 首页 > news >正文

如何快速查找最后(最右侧)隐藏列

实例需求:定位工作表中的最后(最右侧)隐藏列,处理其中的数据。

通常思路是从工作表最后列开始,倒序检查每个列,直到找到隐藏列或者检查完毕(无隐藏列)。

Sub LastColumn()Dim visRng As Range, c As Range, i As Long, LastCol As LongFor i = Columns.Count To 1 Step -1If Columns(i).Hidden ThenLastCol = iExit ForEnd IfNextIf LastCol > 0 ThenDebug.Print "最后要藏列的列号:" & LastColDebug.Print "最后要藏列的列名:" & Split(Cells(1, LastCol).Address, "$")(1)ElseDebug.Print "没有隐藏列"End If
End Sub

其实可以借助VBA的一些特殊方法更快速实现这个需求。

Sub LastColumn()Dim visRng As Range, c As Range, i As Long, LastCol As LongSet c = Columns(Columns.Count)If c.Hidden ThenLastCol = Columns.CountElseSet visRng = ActiveSheet.Rows(1).SpecialCells(xlCellTypeVisible)Set c = visRng.Areas(visRng.Areas.Count)LastCol = c.Column - 1End IfIf LastCol > 0 ThenDebug.Print "最后要藏列的列号:" & LastColDebug.Print "最后要藏列的列名:" & Split(Cells(1, LastCol).Address, "$")(1)ElseDebug.Print "没有隐藏列"End If
End Sub

【代码解析】
第3行代码获取工作表的最后一列,Columns.Count作为索引号,可以确保适配不同的Exel版本(Excel 2003工作表列数较少)。
第4行代码判断最后一列是否被隐藏。
如果最后列为隐藏列,第5行代码保存列号,用于后续输出。
如果最后列不是隐藏列,第7行代码查找第一行中的可见单元格。
第8行代码获取可见单元格中的最后一个区域(Area)。
第9行代码中c.Column获取c中第一个单元格的列号,其左侧一列即为最后隐藏列。
第11~16行代码输出查找的列信息。

最后一列被隐藏的情况,需要单独判断,否则后续代码获取的结果是错误的。

http://www.lryc.cn/news/252776.html

相关文章:

  • 精密制造ERP系统包含哪些模块?精密制造ERP软件是做什么的
  • TypeScript 的高级技巧
  • TiDB 7.x 源码编译之 TiDB Server 篇,及新特性详解
  • Hadoop实验putty文件
  • 研发人员绩效考核难题及解决措施
  • Inference with C# BERT NLP Deep Learning and ONNX Runtime
  • 6、原型模式(Prototype Pattern,不常用)
  • 图像万物分割——Segment Anything算法解析与模型推理
  • Redis实战篇笔记(最终篇)
  • 游戏配置表的导入使用
  • ❀dialog命令运用于linux❀
  • 【算法】蓝桥杯2013国C 横向打印二叉树 题解
  • XunSearch 讯搜 error: storage size of ‘methods_bufferevent’ isn’t known
  • 基于AWS Serverless的Glue服务进行ETL(提取、转换和加载)数据分析(三)——serverless数据分析
  • 08、分析测试执行时间及获取pytest帮助
  • 视频集中存储/智能分析融合云平台EasyCVR平台接入rtsp,突然断流是什么原因?
  • JavaScript 复杂的<三元运算符和比较操作>的组合--案例(一)
  • uniapp搭建内网映射测试https域名
  • 国防科技大博士招生入学考试【50+论文主观题】
  • CUDA简介——编程模式
  • Linux 软件安装
  • flask之邮件发送
  • 【Filament】Filament环境搭建
  • 外包干了2个月,技术倒退2年。。。。。
  • 使用 python ffmpeg 批量检查 音频文件 是否损坏或不完整
  • Django:通过user-agent判断请求是来自移动端还是PC端(电脑端)
  • Linux中ssh远程登录系统和远程拷贝
  • git常用命令小记
  • 深入Android S (12.0) 探索Framework之输入系统IMS的构成与启动
  • SoC with CPLD and MCU ?