ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1034|回复: 4

[求助] 隐藏选中行中没数据的列(选的行可能是不连续的)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-3-26 18:15 | 显示全部楼层 |阅读模式
Sub 得到选中行的行号()
Dim cel As Range, d, arr
Set d = CreateObject("Scripting.Dictionary")
For Each cel In Selection
d(cel.Row) = ""
Next
arr = d.keys
MsgBox Join(arr, ",")
End Sub
以上是论坛里蓝老师写的,得到选中行的行号。

Sub 隐藏第3和5列没数据的列()
b = Cells.Find("*", , , , 2, 2).Column '所有行中有数据的最大列号
For i = 1 To b
If Cells(3, i) = "" And Cells(5, i) = "" Then
Columns(i).EntireColumn.Hidden = True
End If
Next
End Sub
这是一个简单的隐藏第3和5行都空白列的代码

我实际要判定的不是第3行和第5行,而是当前选中的行,即蓝老师代码arr 中的行,也就是 Cells(arr (1,1), i) = "" And Cells(arr (1,2), i) = ""  And Cells(arr (1,3), i) = ""……………………
但语法不对,该怎么表达啊,谢谢了

附件.rar

7.26 KB, 下载次数: 1

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-3-26 19:27 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
有没朋友帮下忙啊

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-3-26 21:07 来自手机 | 显示全部楼层
我的想法是:先接蓝老师的代码求得当前行号,再设两组循环,先循环For i=1to最大非空列号
再循环For j(j就是当前行号)对len(cells(i,j))字符长度求和.再判断.再执行隐藏.
现在不知道For j怎么设置,怎么让变量在蓝老师代码中的d.keys里循环

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-3-26 22:58 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
   
[M1].Resize(1, 4) = arr
Dim c As Range
For Each c In Range("M1:P1")
For j = c(1) To c.Value
我先把arr的值写到单元格区域Range("M1:P1")
再用(Dim c As Range    For Each c In Range("M1:P1"))可以把单元个内的数据做为循环变量去执行
但这样很麻烦,可不可以只接把arr内的每个"值"做循环变量啊
网上找不到语法啊,大家指点下 谢谢

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-3-26 23:46 | 显示全部楼层
For Each c In arr
   For j = c To c 就这样就可以了,想不到啊
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-25 20:00 , Processed in 0.031038 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表