Foxtable(狐表)用户栏目专家坐堂 → 请教单元格变色。


  共有2108人关注过本帖树形打印复制链接

主题:请教单元格变色。

帅哥哟,离线,有人找我吗?
jamhuton
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
请教单元格变色。  发帖心情 Post By:2018/8/7 16:46:00 [只看该作者]

drawcell代码

If e.Col.Name = "卸箱日期" Then
    If e.Row.IsNull("卸箱日期") = False
        If e.Row("卸箱日期").AddDays(14) < Date.Today Then
            e.Style = "超期1"
        ElseIf e.Row("卸箱日期").AddDays(21) < Date.Today Then
            e.Style = "超期2"
        ElseIf e.Row("卸箱日期").AddDays(28) < Date.Today Then
            e.Style = "超期3"
        End If
    End If
End If

这代码只能显示第一个样式的颜色,下面2个显示不出来。
另外,如果我需要在另外一个单元格“送货日期”执行颜色变化,代码如何修改?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/7 17:29:00 [只看该作者]


If e.Col.Name = "送货日期" Then
    If e.Row.IsNull("卸箱日期") = False
        If e.Row("卸箱日期").AddDays(28) < Date.Today Then
            e.Style = "超期3"
        ElseIf e.Row("卸箱日期").AddDays(21) < Date.Today Then
            e.Style = "超期2"
        ElseIf e.Row("卸箱日期").AddDays(14) < Date.Today Then
            e.Style = "超期1"
        End If
    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
jamhuton
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By:2018/8/8 9:15:00 [只看该作者]

甜老师,
这代码貌似没执行


 回到顶部
帅哥哟,离线,有人找我吗?
jamhuton
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By:2018/8/8 9:16:00 [只看该作者]

可以了,谢谢甜老师


 回到顶部
帅哥哟,离线,有人找我吗?
jamhuton
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By:2018/8/8 10:02:00 [只看该作者]

甜老师,还有问题,如果送货日期填入了,用送货日期来代替今天的日期来执行代码呢?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/8 10:26:00 [只看该作者]

If e.Col.Name = "送货日期" Then
    Dim d As Date = e.Row("送货日期")
    If d = Nothing Then d = Date.Today
    If e.Row.IsNull("卸箱日期") = False
        If e.Row("卸箱日期").AddDays(28) < d Then
            e.Style = "超期3"
        ElseIf e.Row("卸箱日期").AddDays(21) < d Then
            e.Style = "超期2"
        ElseIf e.Row("卸箱日期").AddDays(14) < d Then
            e.Style = "超期1"
        End If
    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
jamhuton
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By:2018/8/8 15:32:00 [只看该作者]

谢谢老师

If e.DataCol.Name = "提箱日期" Then
    If e.newvalue = Nothing Then
        e.DataRow("月份1")= Nothing
        e.DataRow("年份1")= Nothing
        e.DataRow("滞箱天数") > 0
    Else
        e.DataRow("月份1") = format(e.newvalue, "yyyyMM")
        e.DataRow("年份1") = format(e.newvalue, "yyyy")
    End If
End If
我要达到“滞箱天数”大于0时再执行这个代码。


 回到顶部
帅哥哟,离线,有人找我吗?
jamhuton
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By:2018/8/8 15:35:00 [只看该作者]

If e.DataCol.Name = "提箱日期" Then
    If e.newvalue = Nothing And e.DataRow("滞箱天数") > 0 Then
        e.DataRow("月份1")= Nothing
        e.DataRow("年份1")= Nothing
    Else
        e.DataRow("月份1") = format(e.newvalue, "yyyyMM")
        e.DataRow("年份1") = format(e.newvalue, "yyyy")
    End If
End If
改成这样貌似也不行

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/8 15:36:00 [只看该作者]

If e.DataCol.Name = "提箱日期" orelse e.datacol.name = "滞箱天数" Then
    If e.DataRow("滞箱天数") <= 0 Then
        e.DataRow("月份1")= Nothing
        e.DataRow("年份1")= Nothing
    Else
        e.DataRow("月份1") = format(e.DataRow("提箱日期"), "yyyyMM")
        e.DataRow("年份1") = format(e.DataRow("提箱日期"), "yyyy")
    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
jamhuton
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By:2018/8/8 15:43:00 [只看该作者]

谢谢


 回到顶部