EXCEL如何excel表格自动隐藏行某行

访问本页面,您的浏览器需要支持JavaScriptExcel 编程 复制sheet2中的某一列到sheet1中,并且空白行自动隐藏_百度知道
Excel 编程 复制sheet2中的某一列到sheet1中,并且空白行自动隐藏
Columns(&quot:x&quot.cells(i-1,其中1和2做一个,也就是说姓名列可能没有30个人,此时Sheet3里有一个姓名数据库(完全囊括了sheet1里的姓名);)
If x = &quot,如果为空值问题描述.baidu.Offset(:a30)上.Offset(;):a30&quot, 2) = y, 1)
x.Range(&quot, 2)
Next Next sheet1;a2,1),比如第二列的“地址“以及第三列”电话号码“复制过去; Then Exit For
For Each y In sheet2!测试文件可以参见http,3单独做一个;=30. sheet2中的(a2.Range(&quot.Value但是语法可能有问题2),If 3=&lt,基本思路是Dim i As integer.AutoFit可以做两个函数:a29)区域后半部分可能为空值(中间不会是空值)。For Each x In sheet1://pan,则Bi(sheet1)=Bj(sheet3);&quot,Ci(sheet1)=Cj(sheet3).将sheet2(a2.Offset(:a29)姓名复制到sheet1中的(a3://pan。这个完全没思路3)完成上面两步后;sheets(1),需要在sheet1中相应区域对应的行隐藏; Then Exit For
If x = y Then
x.baidu,也可以合起来,谢谢,sheet1里A列填满了姓名, 1) = y.cells(i;i&&quot.Offset(;a2,1)=sheets(2):1):a500&quot
提问者采纳
p>你说的三步可由以下代码完成.Copy Ra&nbsp.VA?shareid=&uk=" name="测试.EntireR &):A&Sheet2; &nbsp.Range(&quot.[A3]&).Resize(.Range(& &nbsp.SpecialCells(2)&);Range(&For Each Ra In Range(& &Next&nbsp:A29&quot.Hidden = TrueEnd Sub<file fsid="392" link="/share/); &nbsp, .Find(Ra;A3;A3:A30&quot, 1):A30&quot.SpecialCells(4);Dim Ra As Range& &nbsp, ;A2; &nbsp, 3).Copy Sheet1; Sheet3,详见附件Sub 测试代码()&nbsp
非常感谢。刚刚接触宏,所以很多想法很局限,你的函数运用得很到位,其中a). SpecialCells(4).怎么理解,你好像仅仅是把最后四行隐藏了。但是如果是这样的情况呢:sheet2里的A列个数未定,也就是需要先判断是否为空.b). 我刚刚测试了一下,如果sheet1里的姓名在sheet3里找不到时,会报错。这可能也是我在问题3)中描述的If x=y,Then copy的好处吧。
a)Range(&A3:A30&).SpecialCells(4) 表示A3:A30中单元格为空的单元格,整句就是隐藏为空的行,目的是解决你第二个问题,不用每个单元格进行判断,不应该“仅仅是把最后四行隐藏了”。b)如果sheet1里的姓名在sheet3里找不到时,会报错。此语句是基于你提供的条件来编写的,你的原话(此时Sheet3里有一个姓名数据库(完全囊括了sheet1里的姓名)) 。如果这个条件不能满足,则要增加一个条件,循环内的那句改为:if not Sheet3.Range(&A:A&).Find(Ra.Value, , , 1) is nothing then Sheet3.Range(&A:A&).Find(Ra.Value, , , 1).Resize(, 3).Copy Ra也可改为两句:set Ra2=Sheet3.Range(&A:A&).Find(Ra.Value, , , 1)if not ra2 is nothing then ra2.Resize(, 3).Copy Ra代码没调试,你改后试试,有问题再联系
提问者评价
来自团队:
其他类似问题
为您推荐:
其他2条回答
首先不说这个用公式就可以实现:1,您一定要按您的这个“算法”来编程么,好不容易看明白、把Sheet1的名字配上地址和电话——名字、地址和电话对照表在Sheet3亲。您的意思就是两步;另外在编程方面有一个词叫“算法”、和匹配地址和电话的方法都不太理想哦、把Sheet2的名字搬到Sheet1里面去2?那些“隐藏行”亲
是的,算法不唯一,完全可以跳开算法的限制,刚刚开始使用宏,可能很多想法太局限。很多功能可以通过现有的函数去实现,但是我了解的函数太少了,现在是急用,以后一定会想办法用现成的函数去做而不是自定义算法,非常感谢你的回答
做函数好像不合适,因为结果影响的区域不是一个单独的单元格。。Sheet3的A列有重复值吗?
谢谢你的回复,sheet3 A列没有重复
Private&Sub&myProcess()Dim&rC,&rS&As&RangeDim&nRow&As&IntegerSet&rS&=&Sheet2.Range(&A2:A29&)nRow&=&3Sheet1.Range(&A3:C30&).ClearContentsSheet1.Rows(&3:30&).Hidden&=&TrueFor&Each&rC&In&rS&&&&If&rC&&&&&&&Then&&&&&&&&Sheet1.Cells(nRow,&1)&=&rC&&&&&&&&Sheet1.Rows(nRow).Hidden&=&False&&&&&&&&nRow&=&nRow&+&1&&&&End&IfNext&#39;*********************For&Each&x&In&Sheet1.Range(&A3:A30&)&&&&If&x&=&&&&Then&Exit&For&&&&For&Each&y&In&Sheet3.Range(&A2:A500&)&&&&&&&&If&y&=&&&&Then&Exit&For&&&&&&&&If&x&=&y&Then&&&&&&&&&&&&x.Offset(,&1)&=&y.Offset(,&1)&&&&&&&&&&&&x.Offset(,&2)&=&y.Offset(,&2)&&&&&&&&&&&&Exit&For&&&&&&&&End&If&&&&Next&Next&Sheet1.Columns(&a:x&).AutoFit&&#39;*********************End&Sub
excel的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁请问excel如何实现按条件自动显示、自动隐藏行???_excel吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:89,189贴子:
请问excel如何实现按条件自动显示、自动隐藏行???收藏
比如:若A1值为Y,则自动显示11-15行;若A1值为N,则自动隐藏11-15行不懂编程,大神们能否直接提供代码复制粘贴?谢谢!
右击工作表标签&查看代码&粘贴下面代码Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Address && "$A$1" Then Exit Sub
Select Case .Value
Range("11:15").EntireRow.Hidden = False
Range("11:15").EntireRow.Hidden = True
MsgBox "搞毛啊!你输的是什么?"
End Select
End WithEnd Sub
这样做可以了,但是有个问题,是不是这个单元格里的数要输入才行?要是$A$1单元格里的数是根据一个公式自己计算出来的,还行不??
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或一次性快速删除Excel2013表格中隐藏的行与列
打开一份电子表格,发现有一些隐藏的行和列,我们一般可以通过行号列号来看出来,要将这些隐藏的行列删除,有什么办法呢?先将它们取消隐藏,然后选中,删除?显然太慢了,下面,我就向大家介绍一种简单的方法批量删除隐藏的行与列。
隐藏表格中的行与列
启动Excel2013,选中需要进行隐藏的行或者列,右击鼠标,从弹出的菜单中选择隐藏。
批量删除表格中隐藏的行或列
①隐藏之后,单击文件按钮,在新的界面,点击下方的选项。
②切换到信任中心标签,单击右侧的信任中心设置按钮。
③在个人信息选项中,单击文档检查器,弹出Microsoft Excel对话框,单击是。为文档做个备份,防止数据丢失。
④默认的是全部勾选,在文档检查器界面,点击检查按钮。
⑤搜索到隐藏的行列,单击全部删除即可。
⑥下面,再来看看原文档吧,行的序号变了,这样就没了隐藏的行。
最新视频教程
点击:7117&&&评论:2
点击:2464&&&评论:0
点击:4265&&&评论:0
点击:700242&&&评论:54
点击:1050914&&&评论:266
点击:179379&&&评论:33
点击:190142&&&评论:30
点击:133260&&&评论:89查看: 2459|回复: 4
阅读权限1UID625214函数0 关最后登录经验26 点在线时间5 小时VBA0 关分享记录好友技巧0 关相册主题段位0 段金币54 个积分26精华0帖子日志注册时间
幼儿园小班, 积分 26, 距离下一级还需 74 积分
金币54 个积分26帖子
本帖最后由 frankyzhe 于
10:39 编辑
求教各位前辈,
& && && && && && && && && &&&问题:如何 自动隐藏 A2到A21中为空值的行和 C1到G1中为空值的列,并自动更新 显示 被隐藏的行和列中被改值后不为空值的行和列?
如下是我编写的 最新版 代码,目前功能【奇次触发A表单元格 隐/显 判断,偶次触发 整体恢复】
缺陷1: 不能 在 判断 A1 是否 改值 后, 触发功能
缺陷2: 还是之前的速度慢的问题:&&显示判断时,当被隐藏的行 的来源数据源 更新数据后,需要被显示出来时,怎样才能不用从表头重新判断?
{细化问题: 1.如何判断 被改值的单元格 行号(x)?& && && && && && && &&&2.如何判断 被隐藏的行 的行号 (y)?
& && && && && && && & 3.如何 当 X=Y 时,使 满足条件的行 取消隐藏?}& && && && &
希望哪位高手帮我 改一下代码,谢谢Public k
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Count && 1 Then Exit Sub
If Target.Column && 1 Then Exit Sub
If Target.Row && 1 Then Exit Sub
& & Call 隐显恢复
& & Cells(1, 2).Select
Application.ScreenUpdating = True
End Sub
Sub 隐显恢复()
& & k = k + 1
& & If k & 10 Then
& && &&&k = 1
& && &&&Call 行列隐藏显示
& & Else
& && &&&If k Mod 2 = 1 Then
& && && && &Call 行列隐藏显示
& && &&&Else
& && && && &Call 恢复初始
& && &&&End If
& & End If
End Sub
Sub 行列隐藏显示()
Dim i As Integer
Dim j As Integer
& & For i = 2 To 21
& && &&&If Cells(i, 1).Value = && Then
& && && && &Cells(i, 1).EntireRow.Hidden = True
& && &&&Else
& && && && &Cells(i, 1).EntireRow.Hidden = False
& && &&&End If
& & Next i
& & For j = 3 To 7
& && &&&If Cells(1, j).Value = && Then
& && && && &Cells(1, j).EntireColumn.Hidden = True
& && &&&Else
& && && && &Cells(1, j).EntireColumn.Hidden = False
& && &&&End If
& & Next j
End Sub
Sub 恢复初始()
Dim i As Integer
Dim j As Integer
& & For i = 3 To 7
& & Cells(1, i).Select
& & Selection.EntireColumn.Hidden = False
& & Next i
& & For j = 2 To 21
& & Cells(j, 1).Select
& & Selection.EntireRow.Hidden = False
& & Next j
End Sub复制代码Public arr(1 To 1, 1 To 1)
Sub 集成功能()
&span style=&line-height: 1.5;&&End Sub&/span&复制代码
10:33 上传
点击文件名下载附件
17.34 KB, 下载次数: 69
阅读权限255UID284853函数0 关最后登录经验118038 点在线时间3693 小时VBA0 关分享记录好友技巧0 关相册主题段位0 段金币38766 个积分118043精华2帖子日志注册时间
金币38766 个积分118043帖子
行,列隐藏都是整行整行的隐藏,没有只隐藏某个单元格一说。
阅读权限1UID625408函数0 关最后登录经验58 点在线时间35 小时VBA0 关分享记录好友技巧0 关相册主题段位0 段金币252 个积分58精华0帖子日志注册时间
幼儿园小班, 积分 58, 距离下一级还需 42 积分
金币252 个积分58帖子
Private Sub Worksheet_Activate()
& & Dim Rng As Range
& & Dim i As Integer
& &
& & For Each Rng In Range(&B2:B20&)
& && &&&If Application.WorksheetFunction.CountA(Rng) = 0 Then
& && && && &Rows(Rng.Row).EntireRow.Hidden = True
& && &&&End If
& & Next
& &
& & For i = 4 To Range(&H1&).Column
& && &&&If Application.WorksheetFunction.CountA(Columns(i)) = 0 Then
& && && && &
& && && && &Columns(i).EntireColumn.Hidden = True
& && &&&End If
& & Next
End Sub
复制代码
阅读权限22UID328231函数0 关最后登录经验22265 点在线时间1861 小时VBA0 关分享记录好友技巧0 关相册主题段位0 段金币9273 个积分22271精华0帖子日志注册时间
大学助理讲师, 积分 22271, 距离下一级还需 4729 积分
金币9273 个积分22271帖子
定位&空值&整行,整列 隐藏!!
阅读权限1UID300784函数0 关最后登录经验85 点在线时间39 小时VBA0 关分享记录好友技巧0 关相册主题段位0 段金币68 个积分85精华0帖子日志注册时间
幼儿园小班, 积分 85, 距离下一级还需 15 积分
金币68 个积分85帖子
Sub 自动隐藏DQ列无字行()
& &ActiveSheet.Unprotect
& &Application.ScreenUpdating = False '冻结屏幕,以防屏幕抖动
& &For i = 61 To 210
& &S1 = &D& & i
& &S2 = &Q& & i
& &'S2 = &Q& & i
& &'S3 = &:&
& &'S3 = S1 + S2
& &'S4 = WorksheetFunction.Count(Range(S3))
& &'If S1 = & & Or s2 = & & Then
& &S3 = WorksheetFunction.Count(Range(S1))
& &S4 = WorksheetFunction.Count(Range(S2))
& &If S3 + S4 = 0 Then
& &Rows(i).EntireRow.Hidden = True
& &Application.ScreenUpdating = True '冻结屏幕,此类语句一般成对使用
最佳答案累计大于500
Powered by

我要回帖

更多关于 excel自动隐藏空白行 的文章

 

随机推荐