除非源文件已打开,否则 MS Excel 2013 函数 TODAY() 不会更新

除非源文件已打开,否则 MS Excel 2013 函数 TODAY() 不会更新

我在使用 MATLAB 访问的 excel 工作表中使用 TODAY() 函数(即我不直接读取工作表)。现在我必须打开 excel 文件才能更新 TODAY() 函数,这种方法是我工作流程中的瓶颈。

我知道可以将 Excel 设置为在计算选项卡下打开时自动更新单元格,但显然这不适用于 MATLAB(或一般的 COM 接口?)。有人能告诉我可以做什么吗?

编辑:我正在使用 MATLAB 内置的“xlsread”命令

答案1

尽管它可能不是你所期望的,但它确实有效根据规格

注意:TODAY 和 NOW 函数的结果仅在计算工作表或运行包含该函数的宏时才会更改。包含这些函数的单元格不会持续更新。

具体来说,就您而言:请注意,“工作表”指的是公式所在的工作表TODAY(),而不是引用该工作表的工作表。

至于问题的第二部分,我认为最好的方法是编写一个 VBA 宏,重新计算工作表。根据这个帖子,应该可以从 MATLAB 调用 Excel 宏(代码从链接文章中复制):

% Create object.
ExcelApp = actxserver('Excel.Application');

% Open file
ExcelApp.Workbooks.Open(fullfile(pwd,'\myFile.xls'));

% Run Macro1, defined in "ThisWorkBook" 
ExcelApp.Run('ThisWorkBook.Macro1');

相关内容