A função do MS Excel 2013 TODAY () não está atualizando, a menos que o arquivo de origem esteja aberto

2

Eu uso a função TODAY () em uma planilha do Excel que é acessada usando o MATLAB (ou seja, não leio a planilha diretamente). Agora eu tenho que abrir o arquivo do Excel apenas para atualizar a função TODAY (), e esse método é um gargalo no meu fluxo de trabalho.

Eu sei que é possível configurar o Excel para atualizar automaticamente as células ao serem abertas sob a guia de cálculo, mas aparentemente isso não se aplica ao MATLAB (ou às interfaces COM em geral?). Alguém pode me dar uma idéia do que pode ser feito?

EDIT: Estou usando o comando 'xlsread' do MATLAB

    
por cbcoutinho 28.08.2015 / 11:01

1 resposta

0

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');
    
por 17.03.2016 / 09:23