ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: mp3_2004

[求助] 表格显示公式计算过程(已提供思路,求一小程序)

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-3-4 12:44 | 显示全部楼层
sz_wap 发表于 2015-3-4 10:36
改成了:取的数值与单元格中显示的效果一致

谢谢你的辛苦帮助,现在已经十分完美了!!!谢谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-4-12 09:09 | 显示全部楼层
sz_wap 发表于 2015-3-4 10:34

您好,想再麻烦您帮忙修改一下,目前引用这个工作薄中的其他工作表的单元格的值的时候,还无法显示,能否帮忙再改进一下呢?
目前只能在sheet1里面,如果引用sheet2的时候就不行了。

TA的精华主题

TA的得分主题

发表于 2015-8-12 09:58 | 显示全部楼层
Function fml(cel As Range)
Application.Volatile
ShName = cel.Parent.Name
fmltext = Replace(cel.Formula, "$", "")
fmltext = Replace(fmltext, "=", "")
Set regExp = CreateObject("VBScript.RegExp")
regExp.Pattern = "[A-Z]{1,2}\d{1,}"
regExp.Global = True
     
For Each i In regExp.Execute(fmltext)
fmltext = Replace(fmltext, i, Worksheets(ShName).Range(i).Text)
Next

fml = fmltext
End Function

TA的精华主题

TA的得分主题

发表于 2016-1-11 21:26 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
sz_wap 发表于 2015-3-4 10:36
改成了:取的数值与单元格中显示的效果一致

非常感谢,之前在网上查了很久都没有找到。。谢谢了。我现在有一个问题,比如我一个公式里面有1*2+5*9-0+0*25-5*(空白表格)*2+25。。。如何让显示的结果里面值为0的不显示。及以上公式为1*2+5*9+25.顺便上传一个我计算模板的,,。麻烦大神帮我看看。。感激不尽

F1吊2层宏 - 副本 - 副本.rar

53.07 KB, 下载次数: 27

TA的精华主题

TA的得分主题

发表于 2019-5-14 23:41 | 显示全部楼层
非常惊喜,有兄弟同问,有大神出手。请大神再此帮忙解决两个问题
1、跨工作表好像不能正确显示;
2、如果前面有=round(.....,4),希望去除。
我上传上面兄弟的附件(修改),请大神看标了红色单元格。
盼大神出手,万分感谢。

如果跨工作表-表格显示公式计算过程.rar

9.23 KB, 下载次数: 11

请见标红单元格

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-1 23:13 | 显示全部楼层
fanqinxi 发表于 2015-8-12 09:58
Function fml(cel As Range)
Application.Volatile
ShName = cel.Parent.Name

老师,你好,之前这个一直都能用,最近不知道是运行了什么vba,导致只能取同个sheet里面的值了,取别的sheet的只留下表名,不出值了,比如=ROUNDDOWN(MIN('6最小值'!D4,'6最小值'!G8,'6最小值'!I13)/10000,0.1)*10000,运行完之后的结果是:ROUNDDOWN(MIN('6最小值'!,'6最小值'!,'6最小值'!)/10000,0.1)*10000  请问是什么原因啊

TA的精华主题

TA的得分主题

发表于 2023-4-2 04:52 | 显示全部楼层
mp3_2004 发表于 2023-4-1 23:13
老师,你好,之前这个一直都能用,最近不知道是运行了什么vba,导致只能取同个sheet里面的值了,取别的sh ...

Function gs(cel As Range)
    Application.Volatile
    fmltext = Replace(cel.Formula, "$", "")
    fmltext = Replace(fmltext, "=", "")
    Set regExp = CreateObject("VBScript.RegExp")
    regExp.Pattern = "([^,\(\+\*/\^-]+\!)?[A-Za-z]{1,2}\d+"
    regExp.Global = True
    If regExp.test(fmltext) Then
        Set mas = regExp.Execute(fmltext)
        For i = mas.Count - 1 To 0 Step -1
            Set ma = mas(i)
            fmltext = WorksheetFunction.Replace(fmltext, ma.firstindex + 1, ma.Length, Evaluate(ma.Value))
        Next
    End If
    gs = fmltext
End Function

如果跨工作表-表格显示公式计算过程.rar (11.19 KB, 下载次数: 4)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-2 13:28 来自手机 | 显示全部楼层
ggmmlol 发表于 2023-4-2 04:52
Function gs(cel As Range)
    Application.Volatile
    fmltext = Replace(cel.Formula, "$", "")

谢谢老师,那么晚还在帮我看这个!真的太感谢了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-2 16:42 来自手机 | 显示全部楼层
ggmmlol 发表于 2023-4-2 04:52
Function gs(cel As Range)
    Application.Volatile
    fmltext = Replace(cel.Formula, "$", "")

这个倒序替换的很严谨,避免了相同地址如A4和AA4如果正向替换时的错误
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-18 00:12 , Processed in 0.032544 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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