簡體   English   中英

如何使用MATLAB基於另一個單元格中的值在Excel中應用條件格式?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM