| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1010 人关注过本帖
标题:请教向EXCEL格中填色的语句
只看楼主 加入收藏
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:333
专家分:114
注 册:2010-2-17
结帖率:70%
收藏
 问题点数:0 回复次数:2 
请教向EXCEL格中填色的语句
我曾经使用过如下语句,得到的结果是正确的:
程序代码:
  
    For j = 0 To Rows
      xlst.Range(xlst.Cells(j + 1, row1(j, 0) + 1), xlst.Cells(j + 1, row1(j, 1) + 1)).Interior.Color = vbGreen
    For I = row1(j, 0) To row1(j, 1)
    Select Case Celldata(j, I)
    Case "": xlst.Cells(j + 1, I + 1).Interior.Color = vbWhite
    Case "2": xlst.Cells(j + 1, I + 1).Interior.Color = vbMagenta
    Case "3": xlst.Cells(j + 1, I + 1).Interior.Color = vbYellow
    End Select
  Next
  Next


上面的语句是对于一个格子里具体的某个值进行填色,现在需求改变,想要将一定的范围值内进行填色。
例如,这个格子里的数值是101~200内的某一个数值的话,如159,则填充vbMagenta颜色;
再如,这个格子里的数值是201~300内的某一个数值的话,如211,则填充vbYellow颜色;
以此类推
但我将如下语句
    Case "2": xlst.Cells(j + 1, I + 1).Interior.Color = vbMagenta
    Case "3": xlst.Cells(j + 1, I + 1).Interior.Color = vbYellow
修改成
Case Is >= 100, Is < 200: xlst.Cells(j + 1, I + 1).Interior.Color = RGB(180, 136, 148)
Case Is >= 200, Is < 300: xlst.Cells(j + 1, I + 1).Interior.Color = RGB(200, 12, 132)
得到的填色结果并不正确,没有进行分色,所有的有值的格子都是同一种颜色。请教哪里错误了,应该怎样修改?
请版主大人和路过的各位给与些帮助。
搜索更多相关主题的帖子: Color 颜色 格子 语句 Case 
2021-09-09 00:20
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:333
专家分:114
注 册:2010-2-17
收藏
得分:0 
以下是引用ictest在2021-9-9 00:20:08的发言:

我曾经使用过如下语句,得到的结果是正确的:
  
    For j = 0 To Rows
      xlst.Range(xlst.Cells(j + 1, row1(j, 0) + 1), xlst.Cells(j + 1, row1(j, 1) + 1)).Interior.Color = vbGreen
    For I = row1(j, 0) To row1(j, 1)
    Select Case Celldata(j, I)
    Case "": xlst.Cells(j + 1, I + 1).Interior.Color = vbWhite
    Case "2": xlst.Cells(j + 1, I + 1).Interior.Color = vbMagenta
    Case "3": xlst.Cells(j + 1, I + 1).Interior.Color = vbYellow
    End Select
  Next
  Next


上面的语句是对于一个格子里具体的某个值进行填色,现在需求改变,想要将一定的范围值内进行填色。
例如,这个格子里的数值是101~200内的某一个数值的话,如159,则填充vbMagenta颜色;
再如,这个格子里的数值是201~300内的某一个数值的话,如211,则填充vbYellow颜色;
以此类推
但我将如下语句
    Case "2": xlst.Cells(j + 1, I + 1).Interior.Color = vbMagenta
    Case "3": xlst.Cells(j + 1, I + 1).Interior.Color = vbYellow
修改成
Case Is >= 100, Is < 200: xlst.Cells(j + 1, I + 1).Interior.Color = RGB(180, 136, 148)
Case Is >= 200, Is < 300: xlst.Cells(j + 1, I + 1).Interior.Color = RGB(200, 12, 132)
得到的填色结果并不正确,没有进行分色,所有的有值的格子都是同一种颜色。请教哪里错误了,应该怎样修改?
请版主大人和路过的各位给与些帮助。


Case Is >= "100", Is < "200": xlst.Cells(j + 1, I + 1).Interior.Color = RGB(180, 136, 148)        这样写也不对
Case Val(Celldata(j, I)) >= "100" And Val(Celldata(j, I)) < "200": xlst.Cells(j + 1, I + 1).Interior.Color = RGB(4, 168, 244)    这样写也不对


2021-09-09 00:25
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:333
专家分:114
注 册:2010-2-17
收藏
得分:0 
通过查找资料,已经正确搞定了!

case is>10, is<50,表达的是 >10 或者 <50,并不是 is>10 and is<50 这样与的关系。
要表达成 is>10 and is<50 这样的关系,得这样写了(假如都是整数): case 11 to 49
2021-09-09 23:08
快速回复:请教向EXCEL格中填色的语句
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017601 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved