我无法清除和重置Cell的背景颜色

Cod*_*ver 4 vbscript excel vba excel-vba

在下面的命令的帮助下,我能够清除单元格的内容,但不能清除它们的背景颜色.如何清除和设置范围内单元格的背景颜色?

ob9.Range(ob9.Cells(1,StartCol),ob9.Cells(1,maxcolumn)).ClearContents
Run Code Online (Sandbox Code Playgroud)

编辑

我试过以下:

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
Run Code Online (Sandbox Code Playgroud)

可以一行完成吗?

谢谢

bon*_*igo 8

一切都好.但是不要选择,因为你正在运行一个巨大的脚本(知道你到目前为止经历了什么)......

with ob9.Range(ob9.Cells(1,StartCol),ob9.Cells(1,maxcolumn))
.Interior.ColorIndex = xlColorIndexNone
.Interior.ColorIndex = 120
End With
Run Code Online (Sandbox Code Playgroud)

如果你直接使用它range你甚至可以删除with块,因为它也有一些性能减慢的缺点.

回答你的子问题:

  1. 如何从列号中获取列名?

    列名称中的Excel列号

  2. 如何根据OP的maxcolumn名称或编号设置范围.

    范围(行,列).

    您提到了您的需要row 1,maxcolumn然后您可以使用这两个数据构建单元格.

    MsgBox Sheets(3).Rows(1).Columns(5).Address

    试试看:

    MsgBox Sheets(3).Rows(1).Columns(maxcolumn).Address