/ / Как да приложим условно форматиране в Excel въз основа на стойността в друга клетка, използвайки MATLAB? - excel, matlab, условно форматиране

Как да приложим условно форматиране в Excel въз основа на стойността в друга клетка, използвайки MATLAB? - excel, matlab, условно форматиране

Опитвам се да автоматизирам условното форматиране вExcel листове, генерирани с помощта на MATLAB. Трябва да форматирам цвета на клетката въз основа на стойността в съседната клетка. И аз предпочитам да постигна това чрез използване на actxserver в 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);

Моля, уведомете ме за грешката си и по-добре, ако можете да предложите алтернатива, която би могла да свърши работата ми.

Отговори:

0 за отговор № 1

Формулата ви не трябва да се позовава на себе си, в Excel ще бъде =IF(A2=6,1,0).

Така че параметрите ви за добавяне могат да бъдат

.Add(xlExpression, [], "=IF(A2=6,1,0)")

Ако искате да използвате променлив обхват, тогава:

.Add(xlExpression, [], strcat("=IF(", range1, "=6,1,0)"))

В Excel можете да изберете целия обхват ислед това създайте формулата на условния формат, базирана на първата клетка, и след това формулата ще се промени за всяка клетка, ако не използвате знаци $ за замразяване на стойността.