使用数组引用名称属性

我正在处理一个需要我根据数组中某个位置的值来select工作表的项目。 我用值填充了desArr() (Stringtypes), desArr(0)包含了我想要引用的表的名称。 为了避免用户更改标签名称和弄乱代码的问题,我试图引用工作表的CodeName。

通常情况下,我可以做到这一点:

 ThisWorkbook.Worksheets(Import.Name) 

其中Import是在VB编辑器中的(Name)属性下指定的。 但是,现在我想要引用该名称,如input取决于desArr(0)的值。 我试图做到以下,但无济于事:

 ThisWorkbook.Worksheets(desArr(0).Name) ThisWorkbook.Worksheets(desArr(0) & ".Name") 

有没有人有任何想法如何解决这个问题?

只要使用:

 Import 

这是引用一个表单对象的方式,而不需要知道它的Name属性。 只需使用其variables/对象名称。 以上相当于,但是比起来,

 ThisWorkbook.Worksheets(Import.Name) 

你所说的“CodeName”和(Name) “property”不是一个属性。 这只是对象variables的名称。 从我可以从你的问题推断,你的工作表对象被称为Import所以只是使用它。


编辑:

很难理解你在问什么。 澄清一点:

如果我理解正确,你有一个名为“导入”的工作表,并且希望能够防范这种情况:

在这里输入图像描述

好的,有些用户决定重命名工作表是个好主意。 请注意,这将表单对象的Name属性的值更改为"User-input crap"Name属性和Tab中写的东西总是一样的 ; 他们是一样的东西; 他们是一对一的链接。

但是,表单对象本身仍然称为Import ,或者之前的任何情况。 (默认情况下,它是Sheet1 ,但也许你在属性窗口中改变了它。)请参阅:

在这里输入图像说明 无论用户input废话,我仍然可以说,例如:

 Import.Cells(1, 1).Value = "frog" 

我也可以这样说,这是无用的复杂但完全相同的:

 ThisWorkbook.Worksheets(Import.Name).Cells(1, 1).Value = "frog" 

可以这样说:

 ThisWorkbook.Worksheets("User-input crap").Cells(1, 1).Value = "frog" 

但为此,我不得不知道用户在工作表标签中input了什么,我不知道。