语境:我创建了一个Excel加载项,其中有一个名为“Mother”的工作表。当用户从安装了加载项的任何工作簿中单击某个按钮时,我希望将工作表“母”复制到同一工作簿中的 并重命名。在代码中:
ThisWorkbook.Sheets("Mother").Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
我的预期:作为上面放入 .xlam 代码的代码行,我知道ThisWorkbook
是指加载项,这是也可以通过观察者观察到:
所以,我希望最后会在工作簿中添加“Mother”的副本。
发生了什么:该方法失败,返回错误工作表类的复制方法类失败。
我做了什么:通过简单地在线查找错误的名称我已经发现,显然,我无法复制隐藏的工作表,这就是该方法失败的原因。所以我试过了:
1)用ThisWorkbook.Sheets("Mother").Visible = True
改变可见性......没有成功;
2)要在更改可见性之前/之后激活工作簿,所以ThisWorkbook.Activate
...没有成功。
我无法在网上找到很多关于此的文档,所以我几乎想知道是否真的可以编辑/显示workbook.xlam
,这是我真正需要为我的项目做的事情。
更多内容:我需要同时添加工作表并将其显示给用户的原因是加载项,它基本上包含自定义函数{{1}需要由用户输入提供以进行微积分。 特别是,我不能在之前的表中写入数据以分发加载项(因为我不知道用户提前输入),也不能准备用户表单到哪里来插入数据并在运行时显示(因为用户输入通常是大量数据,可以轻松地复制粘贴到Excel电子表格中,但不能手动插入表单或函数参数本身)。所以:
我的问题:是否可以在.xlma工作簿中复制(复制)工作表并在允许用户数据插入后激活它?如果是的话,我在上面哪里错了?
答案 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