ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 怎样用VBA实现选中区域的0值删掉变成空值,不删单元格,未选中区域的0不删,谢谢?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-4-22 21:15 | 显示全部楼层 |阅读模式
求助两个问题有红包答谢,一个10,谢谢。
1怎样用VBA实现选中区域(不连续区域)的0值删掉变成空值,不删单元格,未选中区域的0不删,谢谢?2 对选中区域(不连续区域)中含有公式的单元格去掉公式,保留结果,未选中的区域的公式不去掉,谢谢?



选中区域中去掉公式

选中区域中去掉公式

求助去掉公式.rar

112.31 KB, 下载次数: 2

附件去掉公式

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-23 22:14 | 显示全部楼层
本帖最后由 qihang15 于 2018-4-23 23:45 编辑
一把小刀闯天下 发表于 2018-4-23 15:26
刚才有事,可以用纯数组处理。公式对于我来说就是天书,如果问题还没有解决可以把这个公式用文字解释一下 ...

=INDEX(源数据!$B$4:$AA$200,ROW()-6,MATCH($B$3,源数据!$B$4:$AA$4,0)+COLUMN()-2)
每个分表sheet1、sheet2、sheet3中B3是对应的店名,这个店名与总表数据源中的店名查找匹配,数据源表中对应位置的值填充分表。只填充分表中空单元格。谢谢您!附件Excel中sheet1中说的清楚一些,辛苦您了,就您不忙的时候帮忙看看,别耽误您宝贵的时间。

说明

说明

求助谢谢.rar

68.4 KB, 下载次数: 1

TA的精华主题

TA的得分主题

发表于 2018-4-22 22:58 | 显示全部楼层
我不是给你写出来了吗?怎么又发一个

TA的精华主题

TA的得分主题

发表于 2018-4-23 06:53 | 显示全部楼层
Option Explicit

Sub 一()
  Dim rng
  For Each rng In Selection
    If rng = 0 Then Cells(rng.Row, rng.Column) = vbNullString
  Next
End Sub

Sub 二()
  Dim rng
  For Each rng In Selection
    Cells(rng.Row, rng.Column) = rng.Value
  Next
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-23 10:23 | 显示全部楼层
ftgli 发表于 2018-4-22 22:58
我不是给你写出来了吗?怎么又发一个

不好意思,我没看到,显示      抱歉,指定的主题不存在或已被删除或正在被审核,您能在这个帖子发一下吗,辛苦您了,导师给您发个红包,谢谢。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-23 10:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ftgli 发表于 2018-4-22 22:58
我不是给你写出来了吗?怎么又发一个

那个帖子看不到,应该是在审核,在这发一次吧,谢谢好心人。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-23 11:19 | 显示全部楼层

完美解决我的两个问题,谢谢好心人,热心人,技术高人能力达人,非常非常感谢,怎样联系您?好表示感谢。

TA的精华主题

TA的得分主题

发表于 2018-4-23 12:01 | 显示全部楼层
qihang15 发表于 2018-4-23 11:19
完美解决我的两个问题,谢谢好心人,热心人,技术高人能力达人,非常非常感谢,怎样联系您?好表示感谢。

免费,这么简单的问题那好意思收费的呀,哈哈哈。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-23 13:58 | 显示全部楼层
一把小刀闯天下 发表于 2018-4-23 12:01
免费,这么简单的问题那好意思收费的呀,哈哈哈。

对于您是小问题,对于我来说解决了大问题,还是给您2个红包吧,确实非常感谢。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-23 14:12 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
一把小刀闯天下 发表于 2018-4-23 12:01
免费,这么简单的问题那好意思收费的呀,哈哈哈。

也不是收费,是我自愿给的,您就留个您方便的QQ啥的,要不您就帮我看看下面的代码,哪里需要优化或有更好的方法,代码运行速度和效率更高,前面是我录制的宏代码,后面是您的代码,您有时间给指导指导,然后您收红包总可以了吧。
Sub 宏1()
Dim rng
    Sheets("Sheet1").Select '选中sheet1
        Range("B10:D30").Select '选中KB10:D30区域
     Selection.SpecialCells(xlCellTypeBlanks).Select '选中所选区域中的空单元格
     '对所选单元格填充公式
Selection.FormulaR1C1 = _
        "=INDEX(源数据!R4C2:R200C27,ROW()-6,MATCH(R3C2,源数据!R4C2:R4C27,0)+COLUMN()-2)"

  For Each rng In Selection
  Cells(rng.Row, rng.Column) = rng.Value
    If rng = 0 Then Cells(rng.Row, rng.Column) = vbNullString
  Next
'然后同样的方法,对sheet2填充,只把上面代码中的sheet1改成sheet2,其它都不变
Sheets("Sheet2").Select '选中sheet2
其它代码都和上面一样了,
同样方法填充sheet3、sheet5……

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-23 14:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
qihang15 发表于 2018-4-23 13:58
对于您是小问题,对于我来说解决了大问题,还是给您2个红包吧,确实非常感谢。

我加您QQ了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-4-16 11:32 , Processed in 0.041860 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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