我的一个单元格中有一个很长的公式。它是:
=IF(K11=1,MATCH(C66,valv1,-1),IF(K11=2,MATCH(C66,valv2,-1),IF(K11=3,MATCH(C66,valv3,-1),IF(K11=4,MATCH(C66,valv4,-1),IF(K11=5,MATCH(C66,valv5,-1),IF(K11=6,MATCH(C66,valv6,-1),IF(K11=7,MATCH(C66,valv7,-1),IF(K11=8,MATCH(C66,valv8,-1),IF(K11=9,MATCH(C66,valv9,-1),IF(K11=10,MATCH(C66,valv10,-1),IF(K11=11,MATCH(C66,valv11,-1),IF(K11=12,MATCH(C66,valv12,-1),"ERROR"))))))))))))
例如,该公式可能产生值“6”。
公式运行正常,但当我关闭电子表格并再次打开时,单元格中仍显示数字“6”,但当我查看顶部的公式栏时,长公式已被替换为“=#VALUE!”(因此单元格不再起作用)。当我不做任何更改时就会发生这种情况;我只是关闭并再次打开。
我尝试了一下,发现只有当我保存为 .XLS 而不是 .XLSX 时才会发生这种情况,所以这似乎是某种错误。
但是,我无法将其保存为 .XLSX,因为它显示“无法存储 VBA 或 Excel 4.0 宏表” - 但我有一些需要在表上处理的 VBA。
为什么我不能将 VBA 与 .XLSX 一起使用?或者..为什么当我保存为 .XLS 时公式会出错?这两种格式有替代方法吗?
顺便说一下,我正在使用 Mac 版 Excel 2011。
谢谢你!
答案1
我找到了一些答案:
.XLS 文件遵守 Excel 2003 的限制,其中之一就是它不允许超过 7 个嵌套的 IF 函数。
如果我将其保存为 .XLSM 或 .XLSB 文件,宏就会起作用。