Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2641|回复: 6

[已解决]怎么隐藏这一列呢?

[复制链接]
发表于 2013-3-6 16:19 | 显示全部楼层 |阅读模式
如表格中那样:
想把带有2012年字符串的列隐藏掉。因为有合并的单元格所以在自己写的代码运行时会选择很多的列。
高手帮忙修改下代码了。
谢谢了
最佳答案
2013-3-6 16:26
  1. Sub 批量隐藏列()
  2. '---------------------------------------------------------------------------------------
  3. ' Procedure : 批量隐藏列
  4. ' Author    : hwc2ycy
  5. ' Date      : 2013/3/6
  6. ' Purpose   :
  7. '---------------------------------------------------------------------------------------
  8. '
  9. '最后数据列坐材料
  10.     Dim lCol As Long
  11.     '循环变量
  12.     Dim i As Byte

  13.     '关闭屏幕刷新
  14.     Application.ScreenUpdating = False
  15.     lCol = Cells(11, Columns.Count).End(xlToLeft).Column

  16.     For i = 1 To lCol
  17.         '检测单元格内是否含有2012
  18.         If Cells(11, i).Value Like "*2012*" Then
  19.             Columns(i).Hidden = True
  20.         End If
  21.     Next

  22.     '开启屏幕刷新
  23.     Application.ScreenUpdating = True

  24.     MsgBox "隐藏完成"
  25. End Sub
复制代码

Book4.rar

7.99 KB, 下载次数: 11

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-3-6 16:24 | 显示全部楼层
  1. Sub Macro4()
  2.     Dim lCol As Long
  3.     Dim i As Byte
  4.     Application.ScreenUpdating = False
  5.    
  6.     lCol = Cells(11, Columns.Count).End(xlToLeft).Column
  7.     For i = 1 To lCol
  8.         If Cells(11, i).Value Like "*2012*" Then
  9.             Columns(i).Hidden = True
  10.         End If
  11.     Next
  12.    Application.ScreenUpdating = True
  13.    MsgBox "隐藏完成"
  14. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-3-6 16:26 | 显示全部楼层
有合并单元格的。我原先的代码怎么不行呢?
回复

使用道具 举报

发表于 2013-3-6 16:26 | 显示全部楼层    本楼为最佳答案   
  1. Sub 批量隐藏列()
  2. '---------------------------------------------------------------------------------------
  3. ' Procedure : 批量隐藏列
  4. ' Author    : hwc2ycy
  5. ' Date      : 2013/3/6
  6. ' Purpose   :
  7. '---------------------------------------------------------------------------------------
  8. '
  9. '最后数据列坐材料
  10.     Dim lCol As Long
  11.     '循环变量
  12.     Dim i As Byte

  13.     '关闭屏幕刷新
  14.     Application.ScreenUpdating = False
  15.     lCol = Cells(11, Columns.Count).End(xlToLeft).Column

  16.     For i = 1 To lCol
  17.         '检测单元格内是否含有2012
  18.         If Cells(11, i).Value Like "*2012*" Then
  19.             Columns(i).Hidden = True
  20.         End If
  21.     Next

  22.     '开启屏幕刷新
  23.     Application.ScreenUpdating = True

  24.     MsgBox "隐藏完成"
  25. End Sub
复制代码
回复

使用道具 举报

发表于 2013-3-6 16:28 | 显示全部楼层
那就把合并取消吧。
回复

使用道具 举报

发表于 2013-3-6 16:28 | 显示全部楼层
Columns(m).EntireColumn.Hidden = True
可以隐藏的,你写成Hidden = false啦
回复

使用道具 举报

 楼主| 发表于 2013-3-6 16:35 | 显示全部楼层
哎 我说呢搞反了。呵呵
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 09:27 , Processed in 0.425913 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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