Excel精英培训网

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

[已解决]关于选择区域清空的问题。请教高手

[复制链接]
发表于 2014-3-15 13:40 | 显示全部楼层 |阅读模式
本帖最后由 跑跑2014 于 2014-3-16 12:43 编辑

Range("A2:m" & Range("d65536").End(xlUp).Row).ClearContents  只想清空包括A2和A2以下有内容的行,现在如果D2为空,那么这段代码就把第一行也清空了,我这句代码如何改正可以完成我想要的结果。

Range("A2:m65536“).ClearContents 不行,只能这样写了,
最佳答案
2014-3-15 18:45
  1. Sub Macro2()
  2. '数据最后一行
  3. x = ActiveSheet.UsedRange.Find("*", SearchDirection:=xlPrevious).Row
  4. Range("A2:m" & x).ClearContents
  5. End Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-3-15 13:55 | 显示全部楼层
回复

使用道具 举报

发表于 2014-3-15 14:10 | 显示全部楼层
回复

使用道具 举报

发表于 2014-3-15 14:15 | 显示全部楼层
改成这样也不行么?
Range("A2:m" & Range("A65536").End(xlUp).Row).ClearContents  
回复

使用道具 举报

发表于 2014-3-15 15:10 | 显示全部楼层
应该首先确定一下,a-m列最后一个非空单元格在什么列,
比如是a列 ,就把XXX替换成a,如果是b列,就把XXX替换成b
Range("XXX65536").End(xlUp).Row
回复

使用道具 举报

发表于 2014-3-15 18:45 | 显示全部楼层    本楼为最佳答案   
  1. Sub Macro2()
  2. '数据最后一行
  3. x = ActiveSheet.UsedRange.Find("*", SearchDirection:=xlPrevious).Row
  4. Range("A2:m" & x).ClearContents
  5. End Sub
复制代码
回复

使用道具 举报

发表于 2014-3-15 18:52 | 显示全部楼层
本帖最后由 风林火山 于 2014-3-15 19:00 编辑


这样再试试
  1. Range("A3:m" & Range("d65536").End(xlUp).Row).ClearContents
复制代码
回复

使用道具 举报

发表于 2014-3-15 21:01 | 显示全部楼层
个人感觉,还是这样方便:
  1. Intersect(UsedRange, UsedRange.Offset(1, 0)).ClearContents
复制代码
对工作表的usedrange和usedrange区域向下一行的区域取交集,对交集清空就可实现目标
回复

使用道具 举报

 楼主| 发表于 2014-3-16 12:28 | 显示全部楼层
fffox 发表于 2014-3-15 21:01
个人感觉,还是这样方便:对工作表的usedrange和usedrange区域向下一行的区域取交集,对交集清空就可实现目 ...

对这句话暂时还不懂,如果直接放在代码中,会报错,如果A2为空,用我那句话会把第一行也删除,现在的目的是A2如果为空,使用这句话后,不会删除第一行,前提是不想用判断if。
回复

使用道具 举报

 楼主| 发表于 2014-3-16 12:34 | 显示全部楼层
dsmch 发表于 2014-3-15 18:45

试了下,没出现问题。谢谢。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 03:54 , Processed in 0.387103 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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