Office中国论坛/Access中国论坛
标题: EXECL 能做出这种效果来吗? [打印本页]
作者: LIXIANACCP 时间: 2006-5-26 01:03
标题: EXECL 能做出这种效果来吗?
如何在A1单元格中输入:长1.3*宽1*高2*2个
在B1单元格显示5.2M³ (或5.2也行)
作者: 情比金坚 时间: 2006-5-26 04:28
可以,用下面的这个函数
Function fsum(re)
Dim n As Integer
Dim i As Integer
Dim str As String
Dim stra
n = Len(re)
For i = 1 To n
str = Mid(re, i, 1)
If InStr(1, "1234567890+-*/().", str) <> 0 Then
stra = stra & str
End If
Next
stra = "=" & stra
fsum = Evaluate(stra)
End Function
作者: LIXIANACCP 时间: 2006-5-26 05:21
以下是引用情比金坚在2006-5-25 20:28:00的发言:
可以,用下面的这个函数
Function fsum(re)
Dim n As Integer
Dim i As Integer
Dim str As String
Dim stra
n = Len(re)
For i = 1 To n
str = Mid(re, i, 1)
If InStr(1, "1234567890+-*/().", str) <> 0 Then
stra = stra & str
End If
Next
stra = "=" & stra
fsum = Evaluate(stra)
End Function
谢谢版主指教:但不知这函数代码我放(写)到啥地方去呢?[em06]
作者: LIXIANACCP 时间: 2006-6-2 00:14
谢谢版主指教:但不知这函数代码我放(写)到啥地方去呢?
作者: 情比金坚 时间: 2006-6-2 09:25
打开 工具 ---宏----visual basic编辑器
插入--模块,
将上面的代码复制进去,然后在工作区的你需要结果的单元格输入=fsum(a1),a1就是你放公式的单元格
作者: LIXIANACCP 时间: 2006-6-2 16:33
试过!很好,谢谢版主:
有以下3个问题求版主再解答一下:
1. 公式单元格如果输入“×”,则出错,例如:长2.5×宽5×高4.58;不知能否改进成能同时使用”×”及*两种符号.
2.显示结果单元格向下填充下拉后,如果放置公式的单元格未输入内容,则出现#VALUE!,有没有即使下拉填充后,如果放置公式的单元格未输入内容时,则结果显示单元格不显示任何东西呢?
3. 函数调用,每次打开工作薄时,在要显示结果的单元格中输入=FSUM(公式所在单元格)即可,或象宏一样, 打开工作薄时执行一下宏, 即可调用.不用每次都要插入代码.如果能做到设置一次,则以后使用本机时每次打开EXECL即具用这个功能就更加完美无瑕了!
[attach]18214[/attach]
[此贴子已经被作者于2006-6-2 13:19:31编辑过]
作者: quabest 时间: 2006-6-2 21:50
tks!
作者: 情比金坚 时间: 2006-6-4 02:20
1,在代码前添加这样一行:re = Replace(re, "×", "*")
2,公式这样写:=IF(ISERR(fsum(A1)),"",fsum(A1)) 此方法适用于所有不想出错的函数显示
3,另存为加载宏
作者: LIXIANACCP 时间: 2006-6-5 18:28
妙极了,但仍有下列问题不大清楚:
另存为加载宏后,不知怎么调用!
我这样做:打开新工作表后,在工具---加载宏---宏名前打勾,出现闪烁。
是否要在显示结果的单元格重新输入公式:=if(iserr(fsum(A1)),””,(fsum(A1))才能使用呢?
重新输入公式后,我试过,行!!!应该这是最终解决方案了!
非常感谢版主-----其实你很懂代码嘛!!!
[此贴子已经被作者于2006-6-5 10:49:28编辑过]
作者: AccessQ 时间: 2006-6-5 23:47
谢谢楼主的指教.
作者: steven_shuhong 时间: 2006-6-7 20:54
情比金坚总是很厉害哦!!
作者: 双双 时间: 2006-6-15 02:07
我是第一次来到这个论坛,真是后悔来的太晚啊。
作者: LIXIANACCP 时间: 2006-6-22 20:47
不另外开贴了,还有一个后续问题:
如果在A1单元格输入 5㎏
在B1单元格输入 10元/㎏
在C1单元格要显示 50
怎么办样?
同时,情比金坚版主的上述案例如果在单元格中输入5KG*10元/KG也会出错,5KG*10元每公斤则不出错,有/就出错!
[此贴子已经被作者于2006-6-22 12:54:35编辑过]
作者: LIXIANACCP 时间: 2006-6-27 00:03
不要让它沉了,
顶一下!!!!!!
作者: LIXIANACCP 时间: 2006-6-29 23:57
再顶一下,不要让最后的问题沉了!
作者: EEKO2005 时间: 2006-7-1 00:47
又学到东西了![em05]
作者: scottwang 时间: 2006-7-2 06:52
以下是引用LIXIANACCP在2006-6-22 12:47:00的发言:
不另外开贴了,还有一个后续问题:
如果在A1单元格输入 5㎏
在B1单元格输入 10元/㎏
在C1单元格要显示 50
怎么办样?
同时,情比金坚版主的上述案例如果在单元格中输入5KG*10元/KG也会出错,5KG*10元每公斤则不出错,有/就出错!
C1=LOOKUP(999999999999,--LEFT(A1,ROW(INDIRECT("$A1A"&LEN(A1)))))*LOOKUP(999999999999,--LEFT(B1,ROW(INDIRECT("$A1A"&LEN(B1)))))
作者: LIXIANACCP 时间: 2006-7-2 21:06
以下是引用scottwang在2006-7-1 22:52:00的发言:
C1=LOOKUP(999999999999,--LEFT(A1,ROW(INDIRECT("$A1A"&LEN(A1)))))*LOOKUP(999999999999,--LEFT(B1,ROW(INDIRECT("$A1A"&LEN(B1)))))
太麻烦了点!并不比人工手算强,能用函数解决就好了!
作者: LIXIANACCP 时间: 2006-7-14 20:23
不另外开贴了,还有一个后续问题:
如果在A1单元格输入 5㎏
在B1单元格输入 10元/㎏
在C1单元格要显示 50
怎么办样?
同时,情比金坚版主的上述案例如果在单元格中输入5KG*10元/KG也会出错,5KG*10元每公斤则不出错,有/就出错!
这个问题真就没办法了吗?[em06]
作者: 情比金坚 时间: 2006-7-17 00:49
想不到你还在这,我又回来了,“/”是计算符号,是除以的意思,所以你的数据输入还是尽量标准为好。
现在增加一重判断,如果“/”后面不是数字就不把它看作是计算符号。
Function fsum(re)
Dim n As Integer
Dim i As Integer
Dim str As String
Dim stra, a
re = Replace(re, "×", "*")
n = Len(re)
For i = 1 To n
str = Mid(re, i, 1)
If InStr(1, "1234567890+-*().", str) <> 0 Then
stra = stra & str
Else
If str = "/" Then
a = Mid(re, i + 1, 1)
If InStr(1, "1234567890", a) <> 0 Then
stra = stra & str
End If
End If
End If
Next
stra = "=" & stra
fsum = Evaluate(stra)
End Function
[此贴子已经被作者于2006-7-16 16:56:18编辑过]
作者: 情比金坚 时间: 2006-7-17 00:51
你的后续问题:
=fsum(A1 & "*" &B1)
作者: LIXIANACCP 时间: 2006-7-17 21:03
以下是引用情比金坚在2006-7-16 16:51:00的发言:
你的后续问题:
=fsum(A1 & "*" &B1)
版主:
按你的教导去做了,好象出错哦!
[attach]19082[/attach]
作者: 情比金坚 时间: 2006-7-17 21:45
[attach]19085[/attach]
未发现任何错误
作者: mq 时间: 2006-7-21 03:22
标题: 公式问题!急!谢谢!
谢谢!请一定帮帮忙啊![attach]19163[/attach]
作者: mq 时间: 2006-7-21 17:18
标题: 公式编辑问题!急!谢谢!
大侠好!
照你的方法我编辑后,在a1输入公式时,有对话窗弹出:外部编辑错误。我不明白是为什么?能详细说明一下整个的操作过程吗?谢谢!
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) |
Powered by Discuz! X3.3 |