当我尝试插入新工作表时,我得到了多个可供选择的选项。一个显然是“工作表”,另一个叫做“MS Excel 4.0 宏”。所以我选择了“MS Excel 4.0 Macro”,它看起来和一个新的工作表完全一样。我只是好奇普通工作表和 MS Excel 4.0 宏表有什么区别?
2 回答
历史
从其第一个版本开始,Excel 支持最终用户对宏(重复性任务的自动化)和用户定义的函数(Excel 内置函数库的扩展)进行编程。在 Excel 的早期版本中,这些程序是用一种宏语言编写的,其语句具有公式语法并驻留在专用宏表的单元格中(在 Windows 中以文件扩展名 .XLM 存储)。XLM 是 Excel 的默认宏语言。 Excel 4.0。从 Excel 5.0 版开始,默认情况下在 VBA 中录制宏,但对于 5.0 版,XLM 录制仍被允许作为选项。在 5.0 版之后,该选项已停用。所有版本的 Excel,包括 Excel 2010 都能够运行 XLM 宏,但 Microsoft 不鼓励使用它们。
https://en.wikipedia.org/wiki/Microsoft_Excel
MS Excel 4.0 宏表的目的是运行旧版 Excel 4.0 宏。微软在 1993 年用 VBA 取代了 Excel 4.0 宏,但它们仍然可以运行。现在(大约 30 年后),这是恶意方(黑客)最广泛使用的。
例如,您可以在 中输入以下内容A1:A2
:
=EXEC("calc.exe")
=HALT()
然后,要运行它(打开计算器),您需要右键单击A1
并选择Run...
-> Run
。将评估从单击的单元格向下的所有公式。
回答。
旧方法是将宏记录为事件链,无需 VBA。
我的故事。
我大量使用了旧式宏,我已经拥有了数百个。当微软将宏转移到 VBA 时,他们没有提供转换旧宏的方法,所以我一眼就失去了所有这些。我的一个宏非常复杂,在 Mac SE 上运行起来就像做梦一样。我认为它在科学价值方面非常宝贵,因为它使用地下水含水层中的氚观测值以及巨大的输入函数数据表来工作。它使用几个数学模型计算了地下水的停留时间,并更新了五个图表,这些图表绘制了用户为使用的模型引入的输出数据。我通过 EMU 仿真硬件、现代 Mac 和现代 Windows PC 使用复杂的过程将此宏文件保存到 Windows PC,但是该文件不会像在引入 VBA 之前编写的那样运行。损失惨重,
在我在某个地方备份之前,请不要删除这个故事。当我把它贴在更合适的地方时,我保证会删除它。