我在不断更新和改善内置Excel中使用VBA宏财务模型的过程中启用的是由多人运行。首先,这些模板被用作不同项目的预算,所以有很多时候都会创建这些模板,而较老的预算会被重新访问。类命名区域 - Excel的VBA
我的模板的“守护者”,而其他用户只需使用的文档。无论何时我需要向每个人推送更新时,都会产生问题,因为他们已经在较早版本的模板中创建了预算,并且在新模板中重新创建预算需要花费过多的时间。
我已经通过命名范围,然后将这些命名范围应用到旧版本,然后使用命名范围复制到新版本模板中相同的命名范围,在小范围模板上解决了此问题。但是,这是通过单独的代码行来复制每个命名范围。
有没有办法将一组命名区域聚合到一个类中,以便Excel可以循环遍历类中的所有项并复制数据,而不是我需要编写每行来执行复制?
这里是我当前正在运行的代码示例:
Workbooks(WB_Active_Name).Sheets("Office Staff Input").Range("Office_Employee_Names").Value = Workbooks(WB_Secondary_Name).Sheets("Office Staff Input").Range("Office_Employee_Names").Value
Workbooks(WB_Active_Name).Sheets("Office Staff Input").Range("Office_Employee_Positions").Value = Workbooks(WB_Secondary_Name).Sheets("Office Staff Input").Range("Office_Employee_Positions").Value
Workbooks(WB_Active_Name).Sheets("Office Staff Input").Range("Office_Employee_Numbers").Value = Workbooks(WB_Secondary_Name).Sheets("Office Staff Input").Range("Office_Employee_Numbers").Value
Workbooks(WB_Active_Name).Sheets("Office Staff Input").Range("Office_Employee_Bonus_Sharing").Value = Workbooks(WB_Secondary_Name).Sheets("Office Staff Input").Range("Office_Employee_Bonus_Sharing").Value
还有的多行代码类似于这样每个命名范围打。在模板内部,范围是指工作人员姓名,身份证号码,工作时间等列表,并且它们还跨越工作簿中的多个工作表,每个工作簿的大小都不同。
我想知道是否有某种类的,我可以在每个命名范围的前面放置时,我把它定义使他们作为一个阶级一起处理,并可通过环接的。例如:
Office_Employee_Names
成为
GroupClass.Office_Employee_Names
然后代码可以通过一切GroupClass
证明你目前如何做。显示一些代码,我们将帮助你改进它。同样,你谈论的东西的视觉示例也不会受到伤害,因为很难想象出某些模板。 – 2014-02-25 15:30:25
你是否想要维护一个所有范围的列表作为你可以循环的东西?如果是这样,你可以做到这一点......创建一个过程,该过程定义了一个包含所有命名范围的字符串数组。然后,你总是可以根据需要添加新元素到数组中,并在你的代码中引用该数组......我不理解你的问题吗? –
使用示例代码查看我对上面原始帖子的编辑。 – Michael