Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用VBA重用代码_Vba_Ms Office - Fatal编程技术网

如何用VBA重用代码

如何用VBA重用代码,vba,ms-office,Vba,Ms Office,在VBA中工作时,避免重复代码的最佳方法是什么 我习惯于这样的语言:我可以添加一个import语句并访问类的所有公共属性和函数,因此我可以创建一个带有一些公共函数的实用程序类,并在我选择将其导入的任何项目中访问它。每当我想更新其中一个函数时,只需一次编辑就可以让它在所有项目中正常工作 有什么好方法可以在VBA中复制此功能吗 下面的内容主要关注Excel,但我很确定这同样适用于任何Office产品 简单的方法是将可重用代码保存为Advin(*.XLA,用于Excel 2003,*.XLAM,用于E

在VBA中工作时,避免重复代码的最佳方法是什么

我习惯于这样的语言:我可以添加一个import语句并访问类的所有公共属性和函数,因此我可以创建一个带有一些公共函数的实用程序类,并在我选择将其导入的任何项目中访问它。每当我想更新其中一个函数时,只需一次编辑就可以让它在所有项目中正常工作


有什么好方法可以在VBA中复制此功能吗

下面的内容主要关注Excel,但我很确定这同样适用于任何Office产品

简单的方法是将可重用代码保存为Advin(*.XLA,用于Excel 2003,*.XLAM,用于Excel 2007 +)。然后将加载项添加到Excel中,您打开的所有电子表格都可以访问加载项中的自定义函数。如果向电子表格中添加特定的VBA代码,则可以添加对加载项的引用,并且VBA代码可以访问加载项的所有公共子、函数和类

在我的组织中,我们使用3个自制的加载项-它们存储在C:\Program Files\OrganizationName中。每个人都可以接触到它们。更新完成后,我们只需将新版本复制到每个人的硬盘上,然后重新启动Excel,他们就拥有了新版本

外接程序包含实用程序函数,例如用于以下操作的函数:

  • 从电子表格/文件/数据库读取数据/向其写入数据
  • 通常的数据操作,如从列表中删除重复项
  • 高级统计功能
  • 等等
有几个缺点:

  • 如果有多个Excel实例处于打开状态,则只有一个实例可以更新加载项,其他实例处于只读模式
  • 如果Excel崩溃,自动恢复模式通常不会保存您在加载项上所做的更改(更新版本待定)-有一些工具可以定期自动保存
另一种方法是在VB或C中开发xlls或COM库,例如,但这是我没有尝试过的


如果您需要更详细的步骤,网上有很多教程。

Perfect。因为我忘了设置一个参考,所以有一段时间我被卡住了,但一旦我重新阅读了你的文章,并且做到了这一点,一切都正常工作了。谢谢:)您的一个缺点(更新)已在此处解决:。希望这对将来在这里的任何人都有帮助。