Worksheet类的复制方法失败,带有.xlam文件

时间:2014-12-05 14:25:07

标签: vba

语境:我创建了一个Excel加载项,其中有一个名为“Mother”的工作表。当用户从安装了加载项的任何工作簿中单击某个按钮时,我希望将工作表“母”复制到同一工作簿中的 并重命名。在代码中:

ThisWorkbook.Sheets("Mother").Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)

我的预期:作为上面放入 .xlam 代码的代码行,我知道ThisWorkbook是指加载项,这是也可以通过观察者观察到:

enter image description here

所以,我希望最后会在工作簿中添加“Mother”的副本。

发生了什么:该方法失败,返回错误工作表类的复制方法类失败

我做了什么:通过简单地在线查找错误的名称我已经发现,显然,我无法复制隐藏的工作表,这就是该方法失败的原因。所以我试过了:

1)用ThisWorkbook.Sheets("Mother").Visible = True改变可见性......没有成功;

2)要在更改可见性之前/之后激活工作簿,所以ThisWorkbook.Activate ...没有成功。

我无法在网上找到很多关于此的文档,所以我几乎想知道是否真的可以编辑/显示workbook.xlam,这是我真正需要为我的项目做的事情。

更多内容:我需要同时添加工作表并将其显示给用户的原因是加载项,它基本上包含自定义函数{{1}需要由用户输入提供以进行微积分。 特别是,我不能在之前的表中写入数据以分发加载项(因为我不知道用户提前输入),也不能准备用户表单到哪里来插入数据并在运行时显示(因为用户输入通常是大量数据,可以轻松地复制粘贴到Excel电子表格中,但不能手动插入表单或函数参数本身)。所以:

我的问题:是否可以在.xlma工作簿中复制(复制)工作表并在允许用户数据插入后激活它?如果是的话,我在上面哪里错了?

1 个答案:

答案 0 :(得分:1)

看起来这个链接会有所帮助:http://forums.techguy.org/business-applications/1120165-add-extra-sheet-xlam-file.html

无法在加载项工作簿上执行此操作,因此您只需将其设置为“不加入”:

ThisWorkbook.IsAddIn = False
'your copy operation
This Workbook.IsAddIn = True