Arrays 使用VBA从工作表数据设置公共常量

Arrays 使用VBA从工作表数据设置公共常量,arrays,excel,constants,vba,Arrays,Excel,Constants,Vba,我有一个大约40个常量的东西要声明为常量。即 年度部门高级经理姓名(每年增加)。在工作表中设置名称(a、B列) A列B列 2016年PT-1“PT-1-Snr经理姓名1” 2016年PT-2“PT-2-Snr经理姓名2” 2016 PT-20“PT-20-Snr经理姓名20” 2017年PT-1“PT-1-Snr经理姓名21” 2017年PT-2“PT-2-Snr经理姓名22” 2017 PT-20 PT-20-Snr经理姓名40 通过VBA编程的循环,我希望在单独的列中用“PT-1-

我有一个大约40个常量的东西要声明为常量。即 年度部门高级经理姓名(每年增加)。在工作表中设置名称(a、B列)


A列B列
2016年PT-1“PT-1-Snr经理姓名1”

2016年PT-2“PT-2-Snr经理姓名2”

2016 PT-20“PT-20-Snr经理姓名20”


2017年PT-1“PT-1-Snr经理姓名21”

2017年PT-2“PT-2-Snr经理姓名22”

2017 PT-20 PT-20-Snr经理姓名40


通过VBA编程的循环,我希望在单独的列中用“PT-1-Snr Mgr Name 1”标记每个事务(CSV行),以便在Tableau仪表板中用作过滤器。但源数据只有年份和部门,即“2016 PT-1”,因此我需要使用VBA查找数百万行的名称

我知道如何设置:Public Const 2016\u PT-1=“Snr Mgr Name 1”等,但确实需要使用工作表中的代码来完成此操作。

我曾尝试从工作表或数组中使用vlookup,但它效率低下,速度非常慢。 我认为最好找到一种方法,将它们声明为“Const”,然后在获取源数据时执行内部代码查找:

查找\u string=Year&“Dept”以获取“2016 PT-1”,然后使用此查找“PT-1-Snr经理名称1


任何协助都将不胜感激。提前感谢:)

常量的值必须是编译时常量表达式。因此,从电子表格中查找它将不起作用。不过,您可以做的是创建一个名为
常量
的工作表,然后使用例如
[Constants!A1]
引用其值。或者,在Name Manager.Great thxs中声明它-我喜欢[Constants!A1]的想法,但这仍然意味着我必须找到相关的行,这是需要处理时间的位-因此会减慢处理速度。可以查看指定的范围。只需设置40多个命名范围并查找该名称范围的内容。i、 e.“2016年第1部分”等同于“Snr经理名称1”等。前进的道路很好。感谢您提供种子。用户
Find
查找相关行-比检查每个单元格快得多。您还可以将它们传递到字典或集合对象中,以便按名称引用它们。听起来您需要一个数组,或者更好的是一个字典。