Modernize Studio
语言:简体中文
发邮件给我们

把带 VBA 宏的 Excel 工作簿重建为网页应用

报价、发票、库存和排程,常常依赖一个多年来不断加入宏、窗体和隐藏工作表的 Excel 文件。我们把这个工作簿重建为配有正规数据库的网页应用。计算和编号规则不变,多人可以同时工作,不会互相覆盖。

为什么是现在

桌面版 Excel 仍能运行 VBA,Microsoft 365 也继续支持。限制出现在别处。网页版 Excel 不能创建、运行或编辑 VBA 宏,因此存放在 SharePoint 或 OneDrive 中的带宏工作簿,只有在桌面应用中打开时才能用。此外,Windows 版 Office 默认会阻止来自互联网的文件(包括邮件附件)中的宏,工作簿发给同事后经常因此无法使用。

Excel 2021 将与整个 Office 2021 一起于2026年10月13日结束微软支持。不过最大的风险通常不是某个日期,而是写宏的人离开后,再没有人知道哪张工作表影响哪个合计。

  1. Windows 10微软停止支持
  2. Excel 2021 和 Office 2021微软停止支持

迁移内容

人们实际使用的工作簿,包括谁也不记得是什么时候加进去的部分。

  • 公式和计算链

    合计、税额、折扣、价目表,以及跨工作表的 VLOOKUP 和 INDEX/MATCH 链。我们把每个结果追溯到原始输入,在应用中重现同样的计算,包括舍入。

  • VBA 宏

    复制行、生成单据、给发票编号、通过 Outlook 发邮件或导出文件的按钮。逻辑移到服务器上,对每个人都以同样方式运行。

  • 用户窗体

    在 VBA 编辑器中制作的录入窗体,包括下拉列表和校验。它们会变成字段和校验都相同的网页表单。

  • 当作表格使用的工作表

    客户名单、产品、价目表和历史单据存档。它们会变成带主键的数据库表,重复和缺漏在录入时就能发现,而不是等到月底。

  • 模板和打印单据

    排成发票、报价单或送货单样式的工作表。它会变成由应用生成的 PDF,版式和编号不变。

  • 工作簿之间的链接

    从网络上其他文件读取数值的文件,以及每月或每年复制并重命名工作簿的惯例。所有内容最终汇集到一个保存完整历史的应用中。

网页版的样子

示例说明,数据为虚构

带 VBA 窗体的开票工作簿在 Excel 2003 中可能的样子,以及同样的发票在网页应用中的样子。

拖动滑块,或使用键盘方向键。

各部分迁移后的去向

在工作簿中:每个列表一张工作表(客户、产品)
在网页应用中:带主键、录入时即校验的数据库表
在工作簿中:跨工作表的公式
在网页应用中:在服务器上计算,舍入方式相同
在工作簿中:用户窗体和宏按钮
在网页应用中:按用户角色提供的网页表单和操作
在工作簿中:发票或报价单工作表
在网页应用中:版式和编号相同的 PDF 文档
在工作簿中:按人、按月或按年复制的文件
在网页应用中:一个保存完整历史的应用
在工作簿中:用密码保护的工作表
在网页应用中:按角色分配的个人账号,并记录修改

迁移流程

  1. 48 小时内完成评估

    请发给我们工作簿(如有顾虑可用测试数据),以及它读取或写入的其他文件。我们会在 48 小时内回复一份书面报告:程序目前的功能、风险所在、网页版的结构设想、试点模块的固定价格以及其余部分的估价。评估免费,不附带任何义务。

  2. 试点模块

    我们先在您真实数据的副本上构建应用的一部分,通常是使用最多的部分。在决定其余部分之前,员工可以在日常工作中实际使用。

  3. 同样的数据,同样的结果

    我们向工作簿和新应用输入同样的数据,逐一比对每个计算值,精确到分。我们发现的每条业务规则还会写成自动化测试,此后每次发布新版本前都会重新运行。您会收到列明每项核对结果的报告。

  4. 30 天并行运行

    完整应用就绪后,工作簿会与之并行使用 30 天。任何差异都会在旧程序仍在时暴露出来,我们在约定价格内修正。

常见陷阱及应对方法

  1. 依赖当前选中内容的代码

    录制的宏常依赖 Select、ActiveSheet 和 ActiveCell,结果取决于用户最后点了哪里。动手改写之前,我们会先弄清每个宏应该做什么,并以书面形式与您确认。

  2. 隐藏工作表和命名区域

    费率、阈值和查找表常放在隐藏或“深度隐藏”的工作表里,或藏在指向其他工作簿的命名区域背后。我们会在评估中逐一列出,因为每一个都是一条业务规则。

  3. 易失性公式和位置引用

    INDIRECT、OFFSET 以及 Sheet1!C14 这样的引用,都依赖内容在网格中的位置。在错误的位置插入一行,就会悄悄改变一个合计。在应用中,每个值都有名称和类型,计算不再依赖版面布局。

  4. 以文本形式存储的日期和数字

    从其他系统粘贴来的值常以文本形式出现,日和月的顺序还因保存它们的电脑区域设置而异。导入时我们会检查每一列,并列出需要您决定的行。

  5. 舍入和浮点合计

    Excel 显示两位小数,计算时却用更多位,舍入后各行之和不一定等于舍入后的总额。我们会与您约定适用的规则(按行舍入还是按单据总额舍入),并让工作簿和应用处理同一批数据,在每份单据上核对。

  6. 自动操作其他程序

    通过 CreateObject 或 SendKeys 操作 Outlook、Word 或 PDF 打印机的宏,离开桌面会话就无法运行。我们改为在服务器上发送邮件和生成 PDF。

价格和付款

评估

免费

书面报告,48 小时内

试点模块

€1,000–1,500

通常;开工时付 50%,验收时付 50%

付款条件

启动时支付 50%,验收时支付 50%。尾款须在上线和交付源代码之前付清。较大的项目按约定阶段分期付款。

评估免费。如果决定不继续,报告归您所有,无需支付任何费用。

价格固定,并在开工前以书面形式确定。如果工作内容发生变化,我们会发送新的书面报价,经您确认后才进行额外工作。

对于完整迁移,我们的目标是比一般软件公司的报价低 40% 到 60%。我们能做到,是因为我们是一家小型工作室,没有写字楼租金,也没有销售团队。

价格不含增值税。

估算价格

一次真实的迁移,由测试验证

Northwind 是微软随 Access 附带的示例数据库,并不是我们的客户。我们把一份公开副本迁移到 SQLite 和 PostgreSQL,通过自动化测试将每张表、每个查询与原始数据逐一比较,并在此基础上构建了一个可运行的网页应用。案例研究给出了具体数字,等效性报告列出了每一项核对。

Northwind 是一个 Access 数据库,但对于 Excel VBA,我们采用同样的方法:迁移,用同样的数据将结果与原始程序比较,并让新旧程序并行运行。

等效性报告(英文) · 可点击预览和示例评估(演示)

常见问题

计算结果会完全一样吗?

这正是我们要核对的:同样的输入分别进入工作簿和网页应用,每个计算值都逐一比对,精确到分。如果工作簿本身有错误,我们会指出来,由您决定保留还是更正。

还能导出到 Excel 吗?

能。列表和报表都可以下载为 Excel 文件,喜欢用电子表格分析数据的人可以照常使用。不同之处在于,数据本身存放在数据库中。

为什么不直接用网页版 Excel 或 SharePoint?

网页版 Excel 不能运行 VBA 宏,工作簿会恰好失去让它有用的那部分。共享文件也无法阻止两个人同时编辑同几行,更保护不了写在公式里、谁都能覆盖的规则。

写宏的人已经离职了,你们还能接手吗?

能。VBA 代码就在文件里,评估时我们会完整阅读。报告会用通俗的语言说明每个宏的作用,这本身往往就很有价值。

可以同时有多少人使用?

多人可以同时录入数据,每人有自己的账号。数据库会阻止两个人对同一条记录保存相互冲突的修改,这是共享工作簿无法可靠做到的。

我们有好几个类似的工作簿,每年或每个分支机构一个,这算一个项目吗?

通常算。我们把它们全部导入同一个数据库,往年数据依然可以查询。评估报告会列出各版本之间需要您决定的差异。

联系我们

请选择您方便的联系方式。我们会在一个工作日内用中文通过电子邮件回复您。

通过邮件

riccardo@modernizestudio.com
写邮件

请把工作簿(如有顾虑可用测试数据)或一段功能说明发给我们。我们会在一个工作日内回复。

把文件发给我们

如果程序是用 Access、Excel、VB6、Delphi 或早期 .NET 开发的,您在发送文件后 48 小时内即可收到一份免费的书面评估。

  1. 复制一份文件,如您愿意,可使用测试数据。
  2. 把它附在表单或邮件中,最好放进有密码保护的压缩包,并另行发送密码。如有需要,我们会先签署保密协议。
  3. 48 小时内:收到评估报告和试点模块的固定价格。

我们在意大利办公。

给我们留言

可选。数据库、Excel 工作簿、截图或需求说明,最大 10 MB。更大的文件请在留言中附上下载链接。

发邮件给我们

点击按钮会打开您的邮件程序并填好内容。只有在邮件程序中点击“发送”后才会真正发出。

发邮件给我们