设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2180|回复: 7
打印 上一主题 下一主题

出一个帐龄分析的题目,有兴趣的进来做做

[复制链接]
跳转到指定楼层
1#
发表于 2008-6-1 02:12:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
同事让帮做的。
做完后觉得有点意思,所以跟大家分享一下解题的快乐。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2008-6-1 10:26:31 | 只看该作者
瞧一瞧!!
3#
 楼主| 发表于 2008-6-1 13:57:17 | 只看该作者
怎么设置隐藏,回复后可见。
我想把我的答案先隐藏。
等有兴趣的朋友解出来后,再看看和我的思路有什么不同。
4#
发表于 2008-6-1 20:20:14 | 只看该作者
小爪--字母求和.rar
欢乐小爪(461699029) 11:02:09
http://www.officestudy.cn/ShowPo ... ThreadID=2227#12114
我得了50个金币,哈哈!!![:50] [:50] [:50]




看半天,没有看懂楼住题目得意思!汗

[ 本帖最后由 欢欢 于 2008-6-1 20:31 编辑 ]
5#
 楼主| 发表于 2008-6-3 21:27:26 | 只看该作者
版主MM。我这同事描述得还比较清楚吧。比起你的那些CAD问题要易懂得多吧。
什么金币?
告诉我怎么搞那个隐藏。
6#
 楼主| 发表于 2008-6-7 19:14:19 | 只看该作者
直接贴我的答案算了。

Function cqje(ByVal zcqje As Double, ByVal xyqx As Integer, ByRef zlqj As Range, ByRef zlje As Range, ByRef cqqj As Range) As Double
'自定义函数目的:求超期金额
'说明:
'参数一:zcqje 总超期金额
'参数二:xyqx 信用期限
'参数三:zlqj 帐龄期间
'参数四:zlje 帐龄金额
'参数五:cqqj 超期期间
Dim r As Range
Dim i As Integer
Dim myarray1, myarray2
Dim d, mykey
Dim isplit As Integer
Dim je As Double
Set d = CreateObject("scripting.dictionary")
isplit = -1
'获得超期期间与金额
For i = 1 To zlqj.Cells.Count
'如果帐龄金额不为0
    If zlje.Cells(i) <> 0 Then
    '如果帐龄期间标志为-
        If bzh(zlqj.Cells(i)) = True Then
            myarray1 = Split(zlqj.Cells(i), "-")
            '如果信用期限小于等于帐龄期间的右值
            If xyqx <= CInt(myarray1(1)) Then
                d.Add CInt(myarray1(1)) - xyqx, zlje.Cells(i)
                '记录待分割地点
                If isplit = -1 Then
                    isplit = CInt(myarray1(1)) - xyqx
                End If
            End If
        Else
            myarray1 = Split(zlqj.Cells(i), ">")
            d.Add CInt(myarray1(1)) + 1, zlje.Cells(i)
            
        End If
    End If
Next
'如果isplit的初值被改变,则重赋分割地点的值
If isplit <> -1 Then
    d.Item(isplit) = zcqje - (Evaluate(Join(d.items, "+")) - d.Item(isplit))
End If
If bzh(cqqj.Value) = True Then
    myarray2 = Split(cqqj.Value, "-")
    For Each mykey In d.Keys
        If mykey > CInt(myarray2(0)) And mykey <= CInt(myarray2(1)) Then
            je = je + d.Item(mykey)
        End If
    Next
Else
    myarray2 = Split(cqqj.Value, ">")
    For Each mykey In d.Keys
        If mykey > CInt(myarray2(1)) Then
            je = je + d.Item(mykey)
        End If
    Next
End If

cqje = je
End Function

Function bzh(str As String) As Boolean
'判断不同的期间标志,即含-或>
bzh = Len(str) > Len(Replace(str, "-", ""))
End Function
7#
发表于 2008-6-14 16:02:23 | 只看该作者
看一下!
8#
发表于 2008-12-15 16:15:29 | 只看该作者
学习一下!![:50] [:50]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-3 23:26 , Processed in 0.096148 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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