借助以下命令,我可以清除单元格的内容,但不能清除它们的背景颜色。如何清除和设置范围内单元格的背景颜色?
ob9.Range(ob9.Cells(1,StartCol),ob9.Cells(1,maxcolumn)).ClearContents
修改
我尝试了以下内容:
CountFill = objExcel1.Application.WorksheetFunction.CountA(ob9.Rows(1))
CountBlnk = objExcel1.Application.WorksheetFunction.CountBlank(ob9.Rows(1))
TotalColumn= CountBlnk + CountFill
ob9.Range(ob9.Cells(1,CountFill + 1 ),ob9.Cells(1,TotalColumn)).Interior.ColorIndex(-4142) '= xlColorIndexNone
可以一行完成吗?
由于
答案 0 :(得分:8)
一切都很好。但是不要选择,因为你正在运行一个巨大的脚本(知道到目前为止你经历了什么)......
with ob9.Range(ob9.Cells(1,StartCol),ob9.Cells(1,maxcolumn))
.Interior.ColorIndex = xlColorIndexNone
.Interior.ColorIndex = 120
End With
如果你直接使用range
,你甚至可以删除with
阻止,因为它也有一些性能减慢的缺点。
回答你的子问题:
如何从列号中获取列名?
如何根据OP的maxcolumn
名称或号码设置范围。
您提到需要row 1
,maxcolumn
然后您可以使用这两个数据构建单元格。
MsgBox Sheets(3).Rows(1).Columns(5).Address
所以试试看:
MsgBox Sheets(3).Rows(1).Columns(maxcolumn).Address
答案 1 :(得分:2)
你可以尝试
ob9.Range(ob9.Cells(1,StartCol),ob9.Cells(1,maxcolumn)).Select
Selection.Interior.ColorIndex = xlColorIndexNone
Selection.Interior.ColorIndex = xlNone
最后两行中的一行应该有效,但我不确定是哪一行(我没有Excel)。如果你可以尝试两者并报告,那就太好了。
您可以使用以下方式设置颜色:
Selection.Interior.Color = RGB(255,0,0)