4

借助以下命令,我可以清除单元格的内容,但不能清除它们的背景颜色。如何清除和设置范围内单元格的背景颜色?

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

它可以在一行中完成吗?

谢谢

4

2 回答 2

8

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

with ob9.Range(ob9.Cells(1,StartCol),ob9.Cells(1,maxcolumn))
.Interior.ColorIndex = xlColorIndexNone
.Interior.ColorIndex = 120
End With

如果您直接使用,range您甚至可以删除with块,因为它也有一些性能下降的缺点。

回答您的子问题:

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

    列名中的 Excel 列号

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

    范围(行,列)

    您提到您需要row 1maxcolumn然后您可以使用这两个数据构建单元。

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

    所以试试:

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

于 2013-01-02T10:34:50.483 回答
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)
于 2013-01-02T10:04:34.077 回答