[英]How to apply conditional formatting in Excel based on value in another cell using MATLAB?
我試圖在使用MATLAB生成的Excel工作表中自動化條件格式。 我必須根據相鄰單元格中的值格式化單元格的顏色。 我更喜歡在MATLAB中使用actxserver來實現這一點。
例如:
我需要根據來自單元格A2:A20的值來格式化單元格B2:B20的顏色。
這是我正在使用的代碼
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);
請讓我知道我的錯誤,如果你能提出一個可以完成我的工作的替代方案,那就更好了。
你的公式不應該引用自己,在Excel中它將是=IF(A2=6,1,0)
。
所以你的Add參數可能是
.Add(xlExpression, [], '=IF(A2=6,1,0)')
如果要使用變量范圍,則:
.Add(xlExpression, [], strcat('=IF(', range1, '=6,1,0)'))
在Excel中,您可以選擇整個范圍,然后基於第一個單元格創建條件格式公式,然后假設您不使用$ signs來凍結值,則每個單元格的公式都會更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.