ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

使用自动求和函数时出现的两个问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-4-25 21:27 | 显示全部楼层 |阅读模式
使用如下自动求和公式的模块时:
Function myEvaluate(Rng As Range) As Double
    With CreateObject("vbscript.regexp")
        .Pattern = "[^\d+\-*/().]+"
        .Global = True
        .MultiLine = True
        myEvaluate = Evaluate(.Replace(Rng, ""))
    End With
End Function
出现两个问题:1、计算式过长时无法求和;2、当括号中包含数字时无法正确计算结果。
请问如何解决?详附件



示例

示例

示例文件.zip

17.4 KB, 下载次数: 7

TA的精华主题

TA的得分主题

发表于 2017-4-26 10:10 | 显示全部楼层
改好了,试试吧 示例文件.zip (17.46 KB, 下载次数: 8)

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-4-27 20:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

非常非常感谢!但是当长计算式中【】里出现数字时依然无法正确计算结果,请问如何解决?

示例文件.zip

17.88 KB, 下载次数: 3

TA的精华主题

TA的得分主题

发表于 2017-4-27 21:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
公式写成这样,太有才了.......有点醉了..

TA的精华主题

TA的得分主题

发表于 2017-4-27 23:09 | 显示全部楼层
felixplayer 发表于 2017-4-27 20:41
非常非常感谢!但是当长计算式中【】里出现数字时依然无法正确计算结果,请问如何解决?

示例文件.rar (18.62 KB, 下载次数: 6)

TA的精华主题

TA的得分主题

发表于 2017-4-27 23:28 | 显示全部楼层
  1. Sub tt()
  2.     Dim Regx As Object
  3.     Dim LastRow As Long
  4.     Dim Str As String
  5.     Dim Rng As Range
  6.    
  7.     Set Regx = CreateObject("vbscript.regexp")
  8.     LastRow = Cells(Rows.Count, "F").End(xlUp).Row
  9.     For Each Rng In Range("F5:F" & LastRow)
  10.         Str = Rng
  11.         With Regx
  12.             .Global = True
  13.             .Pattern = "【.*?】"
  14.             Str = .Replace(Str, "")
  15.         End With
  16.         Rng.Offset(0, 1).Formula = "=" & Str
  17.     Next Rng
  18. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-4-29 23:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

十分感谢,但是当我把代码复制到我的表格后,还是出现了很多无法计算的情况,比如包含双括号的公式就无法计算,去掉则可以。。。请问大神,这是怎么回事~~~,

我看到有坛友说,由于参数长度受限,用Evaluate构造自定义函数不行,他说直接把计算公式的字符串塞到单元格里,添加了一个按钮,但我感觉太麻烦了,因为我有很多列要计算

1#现场工程量实测.zip

1.42 MB, 下载次数: 8

其它坛友解决方案.zip

20.74 KB, 下载次数: 7

TA的精华主题

TA的得分主题

发表于 2017-4-30 05:46 来自手机 | 显示全部楼层
呵呵,你的或有事项太多,隐蔽工程也不少。你要把问题都摆出来,才好解决。

TA的精华主题

TA的得分主题

发表于 2017-4-30 05:57 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-4-30 09:35 | 显示全部楼层
907490349.zip (1.45 MB, 下载次数: 4) felixplayer 发表于 2017-4-29 23:03
十分感谢,但是当我把代码复制到我的表格后,还是出现了很多无法计算的情况,比如包含双括号的公式就无法 ...

查了查,参数有限制,255个。你的表大量的反复引用公式,打开表比较慢,不如改成VBA。函数已改好。   (0.25+0.09+高度?)*0.9*(2+2*2)【电梯上方黑色】----------这个?表示高度是个可选项?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-3-29 04:31 , Processed in 0.049919 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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