Excel精英培训网

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

[已解决]用VBA代码怎样禁用工作表中的函数

[复制链接]
发表于 2012-7-11 11:17 | 显示全部楼层 |阅读模式
问题是这样的,工作表里有函数公式,不知能用VBA编一个代码,运行此代码后,工作表里的公式就失效了!

请各位老师给个解答,谢谢!
最佳答案
2012-7-11 13:03
本帖最后由 suye1010 于 2012-7-11 14:55 编辑

方法1:常规思路,找出含有公式的单元格进行处理
  1. Sub ChangeFormualToValue()
  2. Dim rng As Range
  3. ActiveSheet.EnableCalculation = False
  4. For Each rng In ActiveSheet.UsedRange
  5.     If rng.HasFormula Then
  6.         rng = rng.Value
  7.     End If
  8. Next
  9. ActiveSheet.EnableCalculation = True
  10. End Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-7-11 11:23 | 显示全部楼层
失效模式是什么样的?是保留值,还是直接清空?
回复

使用道具 举报

 楼主| 发表于 2012-7-11 12:16 | 显示全部楼层
suye1010 发表于 2012-7-11 11:23
失效模式是什么样的?是保留值,还是直接清空?

保留值,、
我的想法就是想让公式起不到作用。
回复

使用道具 举报

发表于 2012-7-11 13:03 | 显示全部楼层    本楼为最佳答案   
本帖最后由 suye1010 于 2012-7-11 14:55 编辑

方法1:常规思路,找出含有公式的单元格进行处理
  1. Sub ChangeFormualToValue()
  2. Dim rng As Range
  3. ActiveSheet.EnableCalculation = False
  4. For Each rng In ActiveSheet.UsedRange
  5.     If rng.HasFormula Then
  6.         rng = rng.Value
  7.     End If
  8. Next
  9. ActiveSheet.EnableCalculation = True
  10. End Sub
复制代码
回复

使用道具 举报

发表于 2012-7-11 14:56 | 显示全部楼层
方法2:利用数组中转
  1. Sub ChangeFormualToValue()
  2. Dim arr
  3. arr = ActiveSheet.UsedRange
  4. ActiveSheet.UsedRange = arr
  5. End Sub
复制代码
回复

使用道具 举报

发表于 2012-7-11 14:59 | 显示全部楼层
方法3:区域=区域.value
  1. Sub ChangeFormualToValue()
  2. ActiveSheet.UsedRange = ActiveSheet.UsedRange.Value
  3. End Sub
复制代码
回复

使用道具 举报

发表于 2012-7-11 15:03 | 显示全部楼层
方法4:利用Pastespecial方法
  1. Sub ChangeFormualToValue()
  2. ActiveSheet.UsedRange.Copy
  3. ActiveSheet.UsedRange.PasteSpecial xlPasteValues
  4. Application.CutCopyMode = False
  5. End Sub
复制代码
回复

使用道具 举报

发表于 2012-7-11 15:09 | 显示全部楼层
其实这个问题也可以不用VBA代码解决

选中你要去除公式的区域-复制-选择性粘贴-只有值 即可
回复

使用道具 举报

 楼主| 发表于 2012-7-11 17:41 | 显示全部楼层
suye1010 发表于 2012-7-11 15:09
其实这个问题也可以不用VBA代码解决

选中你要去除公式的区域-复制-选择性粘贴-只有值 即可

老师太厉害了,学习学习!
回复

使用道具 举报

发表于 2012-7-11 17:58 | 显示全部楼层
suye1010 发表于 2012-7-11 15:03
方法4:利用Pastespecial方法

你好请你帮忙看一下http://www.excelpx.com/thread-251324-1-1.html
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-5 07:53 , Processed in 0.461776 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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