Я пытаюсь автоматизировать условное форматирование в листах Excel, созданных с использованием MATLAB. Я должен отформатировать цвет ячейки на основе значения в соседней ячейке. И я предпочитаю это делать, используя actxserver в MATLAB.Как применить условное форматирование в Excel на основе значения в другой ячейке с использованием MATLAB?
Например:
Мне нужно отформатировать цвет ячеек B2: B20 на основе значений из ячеек A2: A20.
Это код, я использую
Excel = actxserver('Excel.Application');
set(Excel,'Visible', 0);
Workbook = invoke(Excel.Workbooks, 'open', [fpath filesep file ext]);
sheet = get(Excel.Worksheets, 'Item', sheetname);
invoke(sheet, 'Activate');
%% range: cells that need to be formatted
%% range1: cells that determine the formatting of range
ExAct = Excel.Activesheet;
ExActRange = get(ExAct,'Range',range);
ExActRange.Select;
xlExpression = 2;
Excel.Selection.FormatConditions.Delete;
Excel.Selection.FormatConditions.Add(xlExpression, [], ['=' range '=if(range1 = 6, 1)']);
Excel.Selection.FormatConditions.Item(1).Interior.ColorIndex = 3;
invoke(Workbook, 'Save');
invoke(Excel, 'Quit');
delete(Excel);
Пожалуйста, дайте мне знать свою ошибку, и лучше, если вы могли бы предложить альтернативу, которая может получить сделала свою работу.
Hi Lance, это похоже на работу. Но вместо ссылки на ячейку, скажем, A2 здесь, я хочу ссылаться на нее с переменной say range1 здесь. Как это сделать?. Спасибо –
@BhaskarChennuri, отредактированный в ответ на это. Заметьте, у меня нет времени, чтобы проверить его, поэтому дайте мне знать, если strcat не выполняет эту работу. –