我在使用 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');