Excel VBA基于单个单元格的范围设置单元格颜色

时间:2013-07-11 08:09:23

标签: excel vba excel-vba range

经过多次搞乱并试图解决这个问题后,我感到很茫然。我有一个C#interop,它返回一个单元格地址的CSV列表。这部分没有问题。我有一个方法将这些的单元格颜色设置为红色:

Worksheets(Worksheet).range(errorCells).Interior.Color = RGB(216, 80, 83)

errorCells是一个包含

等数据的字符串
"O148,O389,O396,O397,O398,O399,O400,O401,O402,O403,O404,O405,O406,O407,O408,O409,O410"

我的问题是当errorCells的字符串很大(大约56个元素)时,Excel抛出:

Run-time error '1004':
Application-defined or object-defined error

csv列表正确传递给方法。这基本上已被改变以帮助提高性能,因为一次进行一个单元格效率低得多。

任何想法?

1 个答案:

答案 0 :(得分:0)

也许你可以尝试不同的方法。假设这些4位数的错误单元格数字以某种方式对应于[Row,Column]单元格引用,您可以尝试这样做:

Dim varSplit As Variant 
varSplit = Split(errorCells, ",") 'Read into an array each value to access

然后使用For Each循环遍历varSplit对象并且:

  1. 将每个字符串拆分为行和列部分
  2. 使用以下方法访问需要着色的范围:

    Cells(Row,Column).Interior.Color  = RGB(216, 80, 83)