如何复制/复制用户表格

时间:2019-10-29 22:29:34

标签: excel vba

问题是我已经创建了一个用户窗体,现在我需要另一个具有相同设计和代码的窗体。

我尝试用选中的UserForm执行通常的复制/粘贴操作,但是它不起作用。实际上,复制/粘贴选项在VBA编辑器的版本组中显示为禁用。

enter image description here

我已经尝试导出UserForm并同时更改名称以保存它,然后再次将其导入到我的Proyect中,但是它使我重新找到一个名称匹配错误。

如下图所示,我从原始UserForm中导出了另一个用户名UserForm1,而是将其另存为UserForm2。

enter image description here

此操作向我返回有关已使用名称'UserForm1'的错误。

enter image description here

我需要在我的Proyect中复制此用户表单,更改名称

2 个答案:

答案 0 :(得分:3)

这是因为Form的专有名称隐藏在文件中,并且文件名本身在表单导入期间被忽略。如果您实际上只需要在项目中添加第二个UserForm,则建议执行以下操作:

  1. 按原样导出UserForm1(保存时不重命名)
  2. 将UserForm1重命名为UserForm2(仅在属性窗口中)
  3. 导入UserForm1

但是,我建议考虑创建该窗体的另一个实例,并在必要时进行动态修改-这可能有助于避免分别更新每个UserForm。

例如:

dim f1 as new UserForm1
dim f2 as new UserForm1

f1.show
f2.show

答案 1 :(得分:2)

  

对于任何想在同一项目中使用相同表单的人,请遵循@ Tomek Kubiak提供的建议。

对于其他所有人,我以为您可以“导出/重命名/导入”,但是您必须打开菜单并选择“导出”并处理保存文件的麻烦,而这还没有完成一半,您必须除了记住您保存它的位置,还可以打开另一个菜单将其取回。并重命名!!!对于我来说,这是一件繁重的工作,如果您像我一样,您已经忘记了第三步。

所以,我要做的是打开Excel的第二个实例,将模块拖到该项目中,然后再拖回。从技术上讲,我认为可以说您仍在导出,重命名,然后导入...但是肯定不会。