Excel VBA开发最佳实践

Excel VBA开发最佳实践,excel,vba,Excel,Vba,我们有开发和分发用VB6编写的桌面应用程序的经验。我们现在正在开发包含VBA代码的Excel电子表格工具。包括当地政府机构在内的各种用户都可以免费下载这些文件 我们以前很少在自己的组织之外分发电子表格。我们应该遵循什么样的最佳实践?是否存在我们应该注意的陷阱 我知道以下几点 。有什么建议吗 我担心IT部门可能会强制要求用户下载包含宏的电子表格,即使他们已经签名。那会发生吗 在不同版本的Excel上制作(2000、2002、2003、2007)。有什么建议吗 (锁定)电子表格。弱保护总比没有好,

我们有开发和分发用VB6编写的桌面应用程序的经验。我们现在正在开发包含VBA代码的Excel电子表格工具。包括当地政府机构在内的各种用户都可以免费下载这些文件

我们以前很少在自己的组织之外分发电子表格。我们应该遵循什么样的最佳实践?是否存在我们应该注意的陷阱

我知道以下几点

  • 。有什么建议吗
  • 我担心IT部门可能会强制要求用户下载包含宏的电子表格,即使他们已经签名。那会发生吗
  • 在不同版本的Excel上制作(2000、2002、2003、2007)。有什么建议吗
  • (锁定)电子表格。弱保护总比没有好,如果有人得到了源代码也不是灾难
  • …也许我应该这么做

    • 我想到两件事:

      • 如果由于某种原因,单元格中有公式或文本,请尝试在其大于255个字符时对其进行重构,因为Excel在复制工作表时截断它没有问题。它甚至不通知你,这取决于它是如何完成的
      • 如果使用命名范围,请避免使用三个字母命名的范围,或三个字母后跟数字。例如,在Office2007BAD1中,BAD1是一个有效的单元格引用

        • 我发现创建一个加载项比开发电子表格更容易分发。通常情况下,我会有一个菜单,其中包含文档选项和创建函数所需的任何模板的选项。通过改变你的电子表格,“应用程序化”意味着更多的工作,但它有几个优点

        • 更容易与您的外观和感觉保持一致
        • 所有代码、模板等都在一个文件中(即:外接程序)
        • 您可以轻松地重用代码(可能是最重要的部分)
        • 有关其外观的示例,请参阅


          我经常添加的另一个技巧是版本控制和使用日志。每个主要功能在运行时都会命中Web服务器并记录其使用情况。这并非适用于所有情况,但在企业环境中,了解谁在运行哪些Excel迷你应用程序以及多久运行一次非常方便。

          我发现,在为大量非技术用户创建电子表格时,这一点很有用。这适用于excel 2007和更早版本(不确定在更高版本中是否仍然存在问题),用户可以在其他工作表中损坏公式,即使所有内容都受到保护

        • 使用命名范围,以便在有人改变主意时可以轻松调整或移动它们的大小
        • 使用数组公式就像人们剪切和粘贴单元格一样,他们将修改依赖于这些单元格的任何公式,如果使用数组,他们必须剪切整个数组以销毁公式
        • 制作数组时,使顶部和底部的一行以及左侧和右侧的一列受到保护,并且用户不能对其进行更改,这样他们就不会损坏您的公式

        • 从未解决过如何确保格式保持完整。

          我们计划将所有代码和模板放在一个文件中。电子表格将是一个免费下载,以帮助具体的计算-我们需要哄骗用户使用它。我有点担心,用户可能会比电子表格更怀疑外接程序,并发现很难开始。对于这个应用,我认为他们需要在下载后几分钟内获得有趣的结果,否则他们可能会放弃+1然而,有趣的建议如果你有一个命令栏/菜单栏链接到你的电子表格,你将不得不从Excel 2007上更改为支持Excel 2007功能区,包含VBA的文件会发出一条恼人的警告消息,并且Mac不再支持VBA。