Excel精英培训网

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

[已解决]如何将筛选后单元格公式批量转化为数值

[复制链接]
发表于 2022-1-18 13:09 | 显示全部楼层 |阅读模式
请教各位:
          在EXCEL 2010里, 如何将筛选后单元格公式批量转化为数值。因数据量大,想要简单可行办法达到目的,见附件。
           想达到的目标,,筛选G列的无颜色行,公式批量转化为数值。现在用复制粘贴为数值时,提示。定位可见单元格,复制粘贴,也不能达到目标。在网上找了很多,也没简请大家出谋划策。因为没有积分,不能发悬赏贴,不好意思啊。

最佳答案
2022-1-18 14:10
  1. Sub demo()
  2. Dim i As Integer
  3. For i = 5 To 1715
  4.     If Cells(i, "g").Interior.ColorIndex = -4142 Then
  5.         Cells(i, "g") = Cells(i, "g").Value
  6.     End If
  7. Next i
  8. End Sub
复制代码


举例资料.zip

887.61 KB, 下载次数: 23

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2022-1-21 15:13 | 显示全部楼层
水中绿萝 发表于 2022-1-21 15:09
您好,执行后,提示:编译错误,缺少:行号或标签或语句结束。

麻烦测试一下,您 那边是不是可以运行 ...
  1. Sub demo()
  2. Dim i As Integer
  3. For i = 5 To 1715
  4.     If InStr(Cells(i, "B").Value, "合计") > 0 Or InStr(Cells(i, "B").Value, "小计") > 0 Or InStr(Cells(i, "B").Value, "总计") > 0 Then
  5.     Else
  6.         Cells(i, "g") = Cells(i, "g").Value
  7.     End If
  8. Next i
  9. End Sub
复制代码


回复

使用道具 举报

发表于 2022-1-18 14:10 | 显示全部楼层    本楼为最佳答案   
  1. Sub demo()
  2. Dim i As Integer
  3. For i = 5 To 1715
  4.     If Cells(i, "g").Interior.ColorIndex = -4142 Then
  5.         Cells(i, "g") = Cells(i, "g").Value
  6.     End If
  7. Next i
  8. End Sub
复制代码


回复

使用道具 举报

 楼主| 发表于 2022-1-19 14:39 | 显示全部楼层

您好,这个代码可以成功地把G列筛选的公式单元格,批量替换为数值。

能否有办法,把任意筛选列的公式单元格,批量替换为数值。谢谢。
回复

使用道具 举报

发表于 2022-1-19 18:13 | 显示全部楼层
水中绿萝 发表于 2022-1-19 14:39
您好,这个代码可以成功地把G列筛选的公式单元格,批量替换为数值。

能否有办法,把任意筛选列的公式 ...

方法是一样的。根据你筛选的条件去判断。
回复

使用道具 举报

 楼主| 发表于 2022-1-20 10:55 | 显示全部楼层
林木水 发表于 2022-1-19 18:13
方法是一样的。根据你筛选的条件去判断。

您好,可以帮忙修改一下代码,效果为,如果G列对应的B列为“合计”或“小计”,则不转换为数值,否则,转换为数值。
untitled.png
回复

使用道具 举报

发表于 2022-1-20 12:01 | 显示全部楼层
水中绿萝 发表于 2022-1-20 10:55
您好,可以帮忙修改一下代码,效果为,如果G列对应的B列为“合计”或“小计”,则不转换为数值,否则,转 ...
  1. Sub demo()
  2. Dim i As Integer
  3. For i = 5 To 1715
  4.     If Cells(i, "B").Value = "合计" Or Cells(i, "B").Value = "小计" Then
  5.     Else
  6.         Cells(i, "g") = Cells(i, "g").Value
  7.     End If
  8. Next i
  9. End Sub
复制代码


回复

使用道具 举报

 楼主| 发表于 2022-1-20 17:11 | 显示全部楼层

您好,还想麻烦一下,可以帮忙修改一下代码,效果为,如果G列对应的B列为“合计”或“小计”或“总计”,则不转换为数值,否则,转换为数值。

还有能不能实现,G列对应的B列,只要含有“小计”、“合计”、“总计”字的,则G列不转换为数值,否则,转换为数值。

因为数据量大,有各种带前缀的小计、合计、总计分层。
回复

使用道具 举报

发表于 2022-1-20 17:20 | 显示全部楼层
本帖最后由 林木水 于 2022-1-20 17:21 编辑
水中绿萝 发表于 2022-1-20 17:11
您好,还想麻烦一下,可以帮忙修改一下代码,效果为,如果G列对应的B列为“合计”或“小计”或“总计”, ...
  1. <div class="blockcode"><blockquote>Sub demo()
  2. Dim i As Integer
  3. For i = 5 To 1715
  4.     If InStr(Cells(i, "B").Value, "合计") > 0 Or InStr(Cells(i, "B").Value, "小计") > 0 Or InStr(Cells(i, "B").Value, "总计") > 0 Then
  5.     Else
  6.         Cells(i, "g") = Cells(i, "g").Value
  7.     End If
  8. Next i
  9. End Sub
复制代码



回复

使用道具 举报

 楼主| 发表于 2022-1-21 15:09 | 显示全部楼层

您好,执行后,提示:编译错误,缺少:行号或标签或语句结束。

麻烦测试一下,您 那边是不是可以运行,还是我的操作问题,谢谢您。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 08:41 , Processed in 0.696663 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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