【发布时间】:2013-08-29 10:06:06
【问题描述】:
我有成千上万个 Excel 文件,它们都是由同一个模板制作的。每个都有日期、零件编号和工程师等参数列。工程师单元格设置为下拉列表,因此用户只能输入某些工程师的姓名。当我们想要添加新工程师或摆脱已离开的工程师时,我们目前根据需要更改 Microsoft 脚本编辑器中的名称列表:
<x:DataValidation>
<x:Range>$D$19:$D$37</x:Range>
<x:Type>List</x:Type>
<x:CellRangeList/>
**<x:Value>"Peter, Paul, Mary"</x:Value>**
</x:DataValidation>
每次遇到有一段时间没有更新的 Excel 文件时,我们必须按 ctrl+F11,找到“Peter, Paul, Mary”这一行并手动将其更改为“Peter, John, Susan ”。这变得非常烦人,我想编辑上述数据并将“彼得,保罗,玛丽”替换为“彼得,约翰,苏珊”。我想对文件名以“ABC”结尾的每个 Excel 文件执行此操作。是否有针对此的代码解决方案,而不是寻找每个文件并手动更改它?我更喜欢 C++/C#,但如果需要或者更容易的话,可以使用 Visual Basic 进行管理。
【问题讨论】:
-
如果您知道哪些单元格应用了数据验证,那么您可以很容易地创建一个 VBA 宏来进行更新:尝试在设置列表时录制一个宏,然后对其进行修改。当“过去的”工程师仍然在场时创建的文件呢?这些数据是否仍需要访问“旧”列表?
标签: c# excel vba automation