Foxtable(狐表)用户栏目专家坐堂 → 如何判断背景色不为空(有背景色)?


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

主题:如何判断背景色不为空(有背景色)?

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


加好友 发短信
等级:五尾狐 帖子:1045 积分:7496 威望:0 精华:0 注册:2008/8/31 22:52:00
如何判断背景色不为空(有背景色)?  发帖心情 Post By:2021/11/2 22:18:00 [只看该作者]

Dim Book As New xls.Book(“c:\aaa.xlsx”) ' 定义一个XLS对象
Dim Sheet As xls.Sheet = Book.Sheets(0) '定义一个sheet表
if Sheet(0,0).Style.BackColor.toARGB <> 16777215  then
........

这样的好像不行,有时会出现    “未将对象引用设置到对象的实例”   的错误。

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


加好友 发短信
等级:超级版主 帖子:113660 积分:578843 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/2 22:42:00 [只看该作者]

Dim Sheet As xls.Sheet = Book.Sheets(0) '定义一个sheet表
if Sheet(0,0).Style is nothing then
msgbox("没有样式")
else
对样式的处理
end if

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


加好友 发短信
等级:五尾狐 帖子:1045 积分:7496 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2021/11/3 10:47:00 [只看该作者]

这个没有样式,是只指没有背景色吗?
Style中,还有没有别的元素?比如文字颜色等等?
isnot nothing,可以吧?

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


加好友 发短信
等级:超级版主 帖子:113660 积分:578843 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/3 11:09:00 [只看该作者]

没有样式不是指没有背景色,而是这个单元格没有设置过任何样式,包括颜色,边框等等等

有什么样式设置参考:

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:五尾狐 帖子:1045 积分:7496 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2021/11/3 12:31:00 [只看该作者]

知道了
现在我只想抓住是不是有背景色,这该如何判断为好呢?
一碰到没有填充色的单元格,就会现现  “未将对象引用设置到对象的实例” 的错误。
好像是说Sheet(0,0).Style.BackColor.toARGB  的值没有。

我的代码是找SHEET中有背景色的单元格,一找到没有背景色的单元格,上述代码就错了。

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


加好友 发短信
等级:超级版主 帖子:113660 积分:578843 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/3 13:42:00 [只看该作者]

看2楼

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


加好友 发短信
等级:五尾狐 帖子:1045 积分:7496 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2021/11/3 16:52:00 [只看该作者]

那我把2楼的修改成这样的了,行吗:
Dim Sheet As xls.Sheet = Book.Sheets(0) '定义一个sheet表
if Sheet(0,0).Style.BackColor is nothing then
msgbox("没有样式")
else
对样式的处理
end if

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


加好友 发短信
等级:超级版主 帖子:113660 积分:578843 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/3 17:28:00 [只看该作者]

Dim Sheet As xls.Sheet = Book.Sheets(0) '定义一个sheet表
if Sheet(0,0).Style is nothing then
msgbox("没有样式")
else
if Sheet(0,0).Style.BackColor .toARGB <> 16777215 then
xxxxxxxxxx
endif
end if

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


加好友 发短信
等级:五尾狐 帖子:1045 积分:7496 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2021/11/3 23:34:00 [只看该作者]

经测试,对于完全新建立的表,完全空的单元格
Sheet(0,0).Style is nothing     这样的判断仍是无用的,还是报错:“未将对象引用设置到对象的实例” 
是不是不能用is nothing?

如果我用其他的有内容的单元格,格式刷给这个完全空的单元格-保存,就不会在这儿报错了。

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


加好友 发短信
等级:超级版主 帖子:113660 积分:578843 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/4 8:48:00 [只看该作者]

使用vba吧

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\问题\aa.xlsx")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim Rg As MSExcel.Range = Ws.Cells(1,1)
With Rg.Interior
   Output.Show( .ColorIndex)
if .ColorIndex <> 16777215 then
msgbox(1)
end if
End With
App.quit

 回到顶部
总数 14 1 2 下一页