Office中国论坛/Access中国论坛

标题: 计算式后结果如何显示 [打印本页]

作者: sc    时间: 2005-6-21 18:40
标题: 计算式后结果如何显示
给为朋友,小第我是搞工程预算的,经常用EXCEL来计算工程造价,我想请教一下,当我在工作簿内某一行内第一列输入一串计算式后,就同时在第二列显示其计算结果,请问各为兄弟伙怎么设置,注:不是在第二列内用复制计算式,输入等号,再在等号后粘贴计算式的方式,那样太麻烦了,感谢大家的帮助,请你们吃重庆火锅,谢谢
作者: 淼漫    时间: 2005-6-21 20:56
等于第一列不行吗?没明白你的意思
作者: 晓月清风    时间: 2005-6-21 21:13
在工作簿内某一行内第一列输入一串计算式后,是不是在按回车前就同时在第二列显示其计算结果呢?
作者: sc    时间: 2005-6-23 18:41
对,就是这样的,在第一列输入计算式,在第二列按回车显示计算结果
作者: sc    时间: 2005-6-23 19:04
老大,第一列是计算式,第二列是结果,等于第一列后还是计算式而不是结果
作者: sc    时间: 2005-6-23 19:17
比如

计算式             结果

   A                  B

1+5*2*3            31

如果用B=A来执行的话,结果显示为计算式,请大家帮助下,在B格里如何设置公式才能得出数字而不是计算式,谢谢
作者: 晓月清风    时间: 2005-6-23 19:18
试试使用以下的宏:

Sub auto_open()

ActiveSheet.OnEntry = "formu2txt"   '按enter后,执行formu2txt

End Sub

Sub formu2txt()

ActiveCell.Offset(0, 1).Value = ActiveCell.Value   

ActiveCell.Value = "'" & ActiveCell.FormulaLocal

End Sub


作者: 晓月清风    时间: 2005-6-23 19:26
以下是引用sc在2005-6-23 11:17:00的发言:



比如

计算式             结果

   A                  B

1+5*2*3            31

如果用B=A来执行的话,结果显示为计算式,请大家帮助下,在B格里如何设置公式才能得出数字而不是计算式,谢谢

这样啊,那很简单,修改一下代码:

Sub auto_open()

ActiveSheet.OnEntry = "formu2txt"

End Sub

Sub formu2txt()

ActiveCell.Offset(0, 1).Value = "=" & ActiveCell.FormulaLocal

'ActiveCell.Value = "'" & ActiveCell.FormulaLocal

End Sub
作者: juyouhh    时间: 2005-6-23 19:30
以下是引用sc在2005-6-23 11:17:00的发言:



比如

计算式             结果

   A                  B

1+5*2*3            31

如果用B=A来执行的话,结果显示为计算式,请大家帮助下,在B格里如何设置公式才能得出数字而不是计算式,谢谢

建议用宏函数来做。见附件。[attach]11433[/attach]


作者: sc    时间: 2005-6-23 19:34
Sub auto_open()

ActiveSheet.OnEntry = "formu2txt"   '按enter后,执行formu2txt

End Sub

Sub formu2txt()

ActiveCell.Offset(0, 1).Value = ActiveCell.Value   

ActiveCell.Value = "'" & ActiveCell.FormulaLocal

End Sub

如何操作上面的步骤,谢谢
作者: sc    时间: 2005-6-23 19:43
1               A                    B                    C                         D 2          1+2+3               2+3+6        1*5*3                       结果为A+B+C或A/B*C如何操作 3                                                                                     结果为A或B或C的结果;或者为A+B;B+C;A*B/C如何操作[em01]
作者: sc    时间: 2005-6-23 19:47
             A           B        1*2-3*4       =X         只能=X吗,我用其他的字母就不行[em07]
作者: sc    时间: 2005-6-23 19:50
     A           B        1*2-3*4       =X这种设置有条件吗,比如我在的工作簿里按这样执行就不能等结果
作者: sc    时间: 2005-6-23 19:52
    A           B         1*2-3*4       =X这种设置有条件吗,比如我在其它的工作簿里按这样执行就不能等结果,是怎么回事
作者: sc    时间: 2005-6-23 20:55
======在 2005-6-23 11:35:00 您来信中写道:======

按ALT+F11打开VBE窗口,插入一个模板,将代码复制进去,保存回到EXCEL工作表,按ALT+F8执行宏auto_open 输入计算式,按回车,则自动在隔列显示结果



我按以上执行了后,能够显示结果,但他是每隔列就显示一个等号,我想按以下的方式得出结果A B C D项目名称 计算式 结果 单位M7.5砖墙 1*2*3*5 m3我想只有在结果下的所有列显示结果,怎么操作呢


作者: sc    时间: 2005-6-23 20:58


======在 2005-6-23 11:35:00 您来信中写道:======

按ALT+F11打开VBE窗口,插入一个模板,将代码复制进去,保存回到EXCEL工作表,按ALT+F8执行宏auto_open 输入计算式,按回车,则自动在隔列显示结果



我按以上执行了后,能够显示结果,但他是每隔列(格)就显示一个等号,我想按以下的方式得出结果(或任意一格内才执行该命令),如何操作呢A                                 B                    C                     D项目名称                计算式               结果             单位M7.5砖墙               1*2*3*5                                  m3我想只有在结果下的所有列显示结果,怎么操作呢
作者: 晓月清风    时间: 2005-6-23 21:28
在C列使用自定义函数吧:在C列输入=caltxt(A2),然后复制公式即可Function caltxt(ref As Range)

Application.Volatile

caltxt = Evaluate("=" & ref.FormulaLocal)

End Function

(直接将这段代码替换刚才的代码)
作者: sc    时间: 2005-6-23 21:56
怎么不行呀,请你说完整点好吗
作者: 晓月清风    时间: 2005-6-23 22:13
1、先把新的代码复制并替换原先的代码,保存2、回到EXCEL工作表中,在C2单元格中输入=caltxt(A2)3、使用自动填充柄下拉到适当的位置,如果A2中有数据,则在C2单元格内显示结果,如果没有则显示#Value如果要使A列中没有算式时,C列显示空白,只要在代码中增加一个条件句,完整代码如下:Function caltxt(ref As Range)

Application.Volatile

If ref.Value = "" Then

caltxt = ""

Else

caltxt = Evaluate("=" & ref.FormulaLocal)

End If

End Function
作者: 晓月清风    时间: 2005-6-23 23:16
[attach]11440[/attach]

其中C列从C1到C20已输入公式


作者: haibin_haina    时间: 2005-6-29 21:46
可到 club.excelhome.net中的应用论坛参考,我也是新手[attach]11548[/attach]



[此贴子已经被作者于2005-6-29 13:51:24编辑过]






欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3