使用Matlab的索引号更改特定Excel单元格的颜色

时间:2019-03-06 15:39:48

标签: excel matlab

我是这个社区的新手,确实需要一些帮助。

我想知道是否有人可以帮助我处理我需要开发的一小部分代码。

我必须使用Matlab突出显示excel中的特定单元格。这些单元格基于我之前在我的代码中应用的条件,它将为我提供一个不满足条件的向量,然后我需要使用actxserver在Excel中突出显示这些单元格。我一直在寻找其他答案,但无法获取有关如何执行此操作的信息。在VBA中,您可以使用“单元格”命令根据索引而不是范围来选择特定单元格。如果使用范围,它可以正常工作,但是在我的情况下,范围将根据工作而改变,因此索引更合适。 我和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 :(得分:0)

如果@MockBean Sender senderMock Mockito.when(senderMock.callRestClient(Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString())).thenReturn(response); 方法不起作用,您仍然可以使用Range。 Juts会这样修改您的for循环:

Cells

通过这种方式,您可以将Range设置为第17行,并且根据您的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

例如vector_column等效于Range(strcat(column_letters(5),num2str(17)))