ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

加减乘除问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-7-19 07:12 | 显示全部楼层
以下是引用matsumi在2005-7-18 20:13:55的发言:

加一个n次方,表达式为(1+5.5*200)2.6 不是(1+5.5*200)^2.6,太复杂了恐怕不行,要求到此为止.谢谢!全文数据的运算符,用常规符号,不替换,为了计算在代码中用* / ^ 替换× ÷ 及 n次,.

对不起,您的要求,我不能做,即使做了,是守柔的一个“败笔”

这样的运算,不符合程序运行,而且,你的N次方,根本属于“无理”要求,程序基本不能判断是N次方。

比如(5+3)(4-2),电脑很难(不是不能,我不想这么做),而且,你说不定异想天开使用中文括号,小数点使用句号.

编程要求应地制宜,我不想为此而迁就于你而毁损于代码,如果你不改的话.

任何运算,都有一定极其严密的数据控制\判断\运算符检测与分析\优先级别等等,光这是样的判断,普通程序如果想要完成这样复杂的判断,至少到500行代码以上.

我没有必要这样做,楼主也没有必要这样做.

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-7-19 20:59 | 显示全部楼层
谢谢版主肺腑之言,问题就到此为止吧!实在不好意思,表歉意!

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-7-24 17:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
在此借用守柔老师的CalValue宏,表谢意,以下解决部分符号替换问题,请多指正!

Sub 计算()

Dim Mycal As Single, Myrange As Range, Er On Error Resume Next

Err.Clear Er = (Right(Selection, 1) * 1) If Err.Number = 13 Then '此判断主要针对选定过程中容易选中段落符,否则可省略。 Set Myrange = ActiveDocument.Range(Start:=Selection.Start, End:=Selection.End - 1) Else Set Myrange = ActiveDocument.Range(Start:=Selection.Start, End:=Selection.End) End If Application.ScreenUpdating = False With Myrange '将原表达式拷贝剪贴板 .Copy '复制到原表达式之后 'ActiveDocument.Range(Start:=Selection.Start, End:=Selection.End).Copy '复制到原表达式下一行

'将表达式中×÷中括号大括号替换为小括号 Myrange = Replace(Myrange, "×", "*") Myrange = Replace(Myrange, "÷", "/") Myrange = Replace(Myrange, "[", "(") Myrange = Replace(Myrange, "]", ")") Myrange = Replace(Myrange, "{", "(") Myrange = Replace(Myrange, "}", ")")

Mycal = .Calculate .Paste '将剪贴板内容覆盖原表达式 .InsertAfter "=" & Mycal End With Application.ScreenUpdating = True End Sub

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

本版积分规则

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

GMT+8, 2024-11-15 10:19 , Processed in 0.021875 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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