2013-07-11 12 views
0

После долгих беспорядков и попыток разобраться в этом я затрудняюсь. У меня есть C# interop, который возвращает CSV-список адресов ячеек. Эта часть работает без проблем. У меня есть метод, который задает цвет ячейки из них на красный:Excel VBA Настройка цвета ячеек на основе диапазона отдельных ячеек

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 передается в метод правильно. Это существенно изменилось, чтобы помочь в производительности, поскольку одна ячейка за раз была более чем неэффективной.

У вас есть идеи?

+0

Итак, ваш метод работает, если errorCells содержит только 1 элемент? а также любое число ниже 56? – Conquistador

+0

Он работает, если в строке csv имеется около 30 объектов. Вещь - это то место, где я запутался, и я не думал, что будет предел. –

ответ

0

Возможно, вы могли бы попробовать другой подход. Если предположить, что эти числа клеток ошибка 4 цифры как-то соответствует [Row, Column] ячейку ссылки вы можете попробовать это:

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

Затем цикл по объекту varSplit, используя для каждого цикла и:

  1. дробить каждая строка в строки и столбца частей
  2. Доступ к Диапазон (ы), которые должны быть окрашены с помощью:

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

Является ли это настолько быстрым, что я первоначально передал массив и зациклил на этот параметр диапазон для каждой ячейки, используя ссылку A34? –

+0

Является ли производительность действительно проблемой? Вы упомянули, что вы делаете это для 56 ячеек, является ли это представителем? – Danzomida

+0

Это для одного набора столбцов есть до 12 наборов колонок, а затем весь лист, который может быть тысячами строк. Его унаследованный проект, поэтому нужно работать с тем, что у меня есть. Это действительно тонкость, поэтому, вероятно, просто перейдем к вашему предложению, чтобы заставить его работать. –

Смежные вопросы