Измените цвет специфических ячеек Excel, используя индексы с Matlab - PullRequest
0 голосов
/ 06 марта 2019

Я новичок в этом сообществе, и мне действительно нужна помощь.

Мне было интересно, может ли кто-нибудь помочь мне с небольшой частью кода, который мне нужно разработать.

Я должен выделить специфические ячейки в Excel, используя Matlab. Эти ячейки основаны на условии, которое я ранее применил в своем коде, и которое предоставит мне вектор, в котором условие не будет выполнено, а затем мне потребуется выделить в excel эти ячейки с помощью actxserver. Я искал другие ответы, и я не мог получить информацию о том, как это сделать. В VBA вы можете использовать команду Cells для выбора конкретной ячейки на основе индекса, а не диапазона. Это работает, если я использую диапазон, но в моем случае диапазон будет изменяться в зависимости от работы, поэтому индекс является более подходящим. Пример вектора 1X178 и я обнаружил, что значения в 2 6 9 12 14 19 не соответствуют условию, поэтому я хотел бы выделить в Excel. Большое спасибо.

vector_column=[2 6 9 12 14 19];
Excel=actxserver('excel.application') % Active server
WB=Excel.Workbooks.Open(fullfile('C:\Users\Cruz\Desktop\New folder','test_check2.xlsx'),0,false); % Open workbook
for j=1:size(vector_column,2)
 WB.Worksheets.Item(1).Cells(17,vector_column(j)).Interior.Color=hex2dec('00FF00');
 % Tried to change colour of excel cells at row 17 and columns number specify in the vector
end

WB.Save();
WB.Close();
Excel.Quit();```



1 Ответ

0 голосов
/ 06 марта 2019

Вы все еще можете использовать Range, если метод Cells не работает.Джутс изменяет ваш цикл for следующим образом:

for j=1:size(vector_column,2)
    column_letters=['A';'B';'C';'D';'E';'F';'G';'H';'I';'J';'K';'L';'M';'N';'O';'P';'Q';'R';'S'];
    WB.Worksheets.Item(1).Range(strcat(column_letters(j),num2str(17))).Interior.Color=hex2dec('00FF00');
end

Таким образом, у вас будет Range установлен в строку 17, а столбец будет меняться в зависимости от вашего vector_column

Например, Range(strcat(column_letters(5),num2str(17))) isэквивалент Range(strcat('E17')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...