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