Embora possa não ser o que você espera, ele funciona de acordo com as especificações .
NOTE: The results of the TODAY and NOW functions change only when the worksheet is calculated or when a macro that contains the function is run. Cells that contain these functions are not updated continuously.
Especificamente no seu caso: observe que "a planilha" faz referência à planilha em que a fórmula TODAY()
está localizada, não à planilha que faz referência a essa planilha.
Quanto à segunda parte da sua pergunta, acho que o melhor caminho a seguir é escrever uma macro VBA que re-calcule a planilha. De acordo com este post , deve ser possível chamar uma macro do Excel a partir do MATLAB (código copiado do artigo vinculado):
% Create object.
ExcelApp = actxserver('Excel.Application');
% Open file
ExcelApp.Workbooks.Open(fullfile(pwd,'\myFile.xls'));
% Run Macro1, defined in "ThisWorkBook"
ExcelApp.Run('ThisWorkBook.Macro1');