以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何判断背景色不为空(有背景色)? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=172834) |
|
-- 作者:wcs -- 发布时间: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表 ........
这样的好像不行,有时会出现 “未将对象引用设置到对象的实例” 的错误。 |
|
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2021/11/3 10:47:00 -- 这个没有样式,是只指没有背景色吗? Style中,还有没有别的元素?比如文字颜色等等? 用isnot nothing,可以吧?
|
|
-- 作者:有点蓝 -- 发布时间:2021/11/3 11:09:00 -- 没有样式不是指没有背景色,而是这个单元格没有设置过任何样式,包括颜色,边框等等等 有什么样式设置参考:
|
|
-- 作者:wcs -- 发布时间:2021/11/3 12:31:00 -- 知道了 现在我只想抓住是不是有背景色,这该如何判断为好呢? 一碰到没有填充色的单元格,就会现现 “未将对象引用设置到对象的实例” 的错误。 好像是说Sheet(0,0).Style.BackColor.toARGB 的值没有。 我的代码是找SHEET中有背景色的单元格,一找到没有背景色的单元格,上述代码就错了。
|
|
-- 作者:有点蓝 -- 发布时间:2021/11/3 13:42:00 -- 看2楼 |
|
-- 作者:wcs -- 发布时间:2021/11/3 16:52:00 -- 那我把2楼的修改成这样的了,行吗:
|
|
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2021/11/3 23:34:00 -- 经测试,对于完全新建立的表,完全空的单元格 Sheet(0,0).Style is nothing 这样的判断仍是无用的,还是报错:“未将对象引用设置到对象的实例” 是不是不能用is nothing? 如果我用其他的有内容的单元格,格式刷给这个完全空的单元格-保存,就不会在这儿报错了。
|
|
-- 作者:有点蓝 -- 发布时间: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 |