首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果,否则,ElseIF循环在某个日期内

如果,否则,ElseIF循环在某个日期内
EN

Stack Overflow用户
提问于 2015-10-30 06:55:31
回答 2查看 54关注 0票数 0

我想设置以下条件,但我只能得到两个条件

这三个条件是小于7天乘以一个值,范围从2个日期乘以一个值和30天以上乘以另一个值。

不能让一切都开始工作

不知道哪里出了问题

代码语言:javascript
复制
' To create the following condition
 'If less than 7 days interest = 0%
' if 8 to 30 days interest = 7%
 'if more than 31 days interest = 9%

Sub Workbook_Open()

For i = 1 To 3 'Rows.Count
xdate = Cells(i, 1)

nulldate = DateAdd("d", -7, Date)
irate7late = DateAdd("d", -8, Date)
irate7early = DateAdd("d", -30, Date)


If Day(nulldate) < Day(xdate) Then
    result = Cells(i, 2) * 1
ElseIf Day(irate7early) <= Day(xdate) And Day(xdate) <= Day(irate7late) Then
            '30/9/2015      20/10/2015      20/10/2015      22/10/2015
    result = Cells(i, 2) * 1.07

ElseIf Day(irate7early) > Day(xdate) Then
    result = Cells(i, 2) * 1.09
End If

Cells(i, 3).Value = result

Next i

End Sub
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-30 07:41:08

为您的需求尝试下面的代码

代码语言:javascript
复制
 Sub Workbook_Open()

Dim diffdate As Variant

For i = 1 To 3 'Rows.Count

      xdate = Cells(i, 1).Value
      diffdate = (DateDiff("d", xdate, Now()))

        If diffdate < 7 Then
            result = Cells(i, 2) * 1
        ElseIf diffdate < 31 And diffdate > 7 Then
            result = Cells(i, 2) * 1.07
        Else
            result = Cells(i, 2) * 1.09
        End If

    Cells(i, 3).Value = result

Next

End Sub 
票数 0
EN

Stack Overflow用户

发布于 2015-10-30 08:08:06

逆转您的测试有时会简化它们:

代码语言:javascript
复制
Sub Workbook_Open()

    Dim delta as Long
    Dim xdate as Date
    For i = 1 To 3 'Rows.Count
        xdate = Cells(i, 1).Value
        delta = DateDiff("d", xdate, Date)

        If delta > 30 Then
            Cells(i,3).Value = Cells(i,2).Value * 1.09
        ElseIf delta > 7 Then
            Cells(i,3).Value = Cells(i,2).Value * 1.07
        Else 'delta <= 7
            Cells(i,3).Value = Cells(i,2).Value
        End If
    Next i

End Sub

不要忘记Option Explicit,它可能会为您节省大量调试时间。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33430325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档