Arrays VBA数组-按其名称寻址

Arrays VBA数组-按其名称寻址,arrays,vba,csv,Arrays,Vba,Csv,这是一个一般VBA数组问题,不适用于MS Office应用程序(不涉及表) 我希望了解如何在运行时使用.csv文件中的数据创建多个一维数组(甚至可能是公共数组)。 我可以解释。以下是csv文件的外观示例: ------- CSV FILE ---------------------------- Colors,white,red,blue,green (... and so on) Animals,cat,dog,wolf,bear (...and so on) Food,cake,bread,

这是一个一般VBA数组问题,不适用于MS Office应用程序(不涉及表)

我希望了解如何在运行时使用.csv文件中的数据创建多个一维数组(甚至可能是公共数组)。 我可以解释。以下是csv文件的外观示例:

------- CSV FILE ----------------------------
Colors,white,red,blue,green (... and so on)
Animals,cat,dog,wolf,bear (...and so on)
Food,cake,bread,garlic (...and so on)
…等等,更多的行

开口部分已解决, 即使是将每行指定给临时变量的部分, 以及更多-该行被拆分为值并分配给临时数组

因此,我:

  • tempArray1
    ,包含
    (“颜色”、“白色”、“红色”等)
  • tempArray2
    ,包含
    (“动物”、“猫”、“狗”等)
目标是创建(或寻址)一个(现有)数组 以每行的第一个值命名,然后将行中的其余值指定给该数组

请不要问我为什么不使用多维数组。 我有我的理由

与本案有关的一个类似问题是: 如果我已经有了一个一维公共数组,定义、命名和填充了它-比如说它是Colors()-我如何使用值“Colors”对它进行寻址? 不仅要寻址,还要擦除、重拨或更改其中的值

当我说“Colors”时,我指的是字符串值,而不是将Colors()硬编码到sub或函数中。

关于“与此案例相关的类似问题”,您可以执行以下操作:

  • 创建包含数组颜色的公共类模块()
  • 然后,添加一个“Microsoft脚本控件”ActiveX控件(可能会添加到表单中),并将其隐藏
  • 将代码(作为字符串)动态添加到ScriptControl中,并执行它。现在,如果这段代码包含(作为字符串),比如“Colors(1)=“red”,那么它实际上会修改类模块中的Colors数组 注意:然而,有一个陷阱。因为它是一个类模块,而不是 普通模块,它将只修改在 脚本控制。因此,您可能需要完成所有其余的编码 也在该脚本控件中(通过向其动态添加代码和 否则,所有更改都将作为 该对象将仅限于包含在 脚本控制